Я делаю изометрическую игру. Когда игрок пытается пройти по диагонали в стену, я хочу, чтобы они плавно скользили по ней, чтобы любая часть движения, которая была бы законной, использовалась, и все, что в направлении нормали, отбрасывалось. Стены могут быть под любым углом, не только вертикальным или горизонтальным, а у игрока 360 движений.
Я чувствую, что я почти на месте, но я не могу поставить последний кусок на место.
Обновление: отличная новость всем! У меня это работает. Но ... я немного запутался, что мне следует нормализовать, а что нет. Нормаль просто должна быть единичным вектором, верно? но затем я смешиваю это со своим вкладом, поэтому я нормализую это - я не прав?
Кстати, я также обнаружил, что мне нужно подтолкнуть игрока на 1 пиксель в направлении нормали, чтобы он не застрял на вещах - работает хорошо.