Mam nadzieję, że wszyscy graliśmy w Zelda: A Link to the Past, proszę mnie poprawić, jeśli się mylę, ale chcę naśladować tego rodzaju ruchy postaci 2D z góry z odrobiną korekty. Dokonano tego w innych grach, ale uważam, że ten odnośnik byłby najłatwiejszy do odniesienia. Mówiąc dokładniej, rodzaj ruchu i korekty, o której mówię, to:
- Ruch swobodny nie ogranicza się do ruchu opartego na kafelkach, takiego jak Pokemon i inne gry, w których jedno dotknięcie pola ruchu przesuwa cię o jedno pole w tym głównym kierunku. Ten ruch pływający powinien umożliwiać ruch po przekątnej.
- Jeśli idziesz na zachód i dojdziesz do ściany, która jest ukośna w stylu północno-wschodnim / południowo-zachodnim, jesteś skorygowany do ruchu południowo-zachodniego, nawet jeśli nadal przytrzymasz lewy (zachodni) przycisk kontrolera. Powinno to działać w przypadku korekcji obu przekątnych w obu kierunkach.
- Jeśli dzieli Cię kilka pikseli od wejścia prosto do drzwi lub korytarza, jesteś skorygowany do przejścia korytarzem lub korytarzem, tzn. Wpadnięcie w kąt powoduje, że jesteś wepchnięty do korytarza / drzwi.
Poszukiwałem skutecznych sposobów na osiągnięcie tego i nie miałem szczęścia. Dla jasności mówię o ruchu ludzkiej postaci, a nie ruchu NPC. Czy ich zasoby są dostępne w tego rodzaju ruchu? Równania lub algorytmy wyjaśnione na wiki czy coś takiego?
Używam frameworka XNA, czy jest w tym coś, co mogłoby pomóc?