Saya membuat game isometrik. Ketika pemain mencoba berjalan secara diagonal ke dinding, saya ingin mereka meluncur dengan mulus di atasnya, jadi bagian mana pun dari gerakan yang legal akan digunakan, dan segala sesuatu ke arah yang normal dibuang. Dinding bisa berupa sudut apa saja, bukan hanya vertikal atau horizontal, dan pemain memiliki 360 gerakan.
Aku merasa seperti hampir sampai di sana, tetapi aku tidak bisa menempatkan potongan terakhir pada tempatnya.
Perbarui: semua orang berita hebat! Saya membuatnya bekerja. Tapi ... Saya agak bingung apa yang harus saya normalkan dan apa yang tidak. Normal hanya perlu vektor satuan, bukan? tapi kemudian saya mencampurnya dengan input saya jadi saya menormalkan itu - apakah saya salah?
By the way, saya juga menemukan bahwa saya perlu mendorong pemain 1 pixel ke arah normal, sehingga mereka tidak terjebak pada hal-hal - berfungsi dengan baik.