Espero que todos hayamos jugado a Zelda: un enlace al pasado, corrígeme si me equivoco, pero quiero emular ese tipo de movimiento 2D de arriba hacia abajo con un toque de corrección. Se ha hecho en otros juegos, pero creo que esta referencia sería la más fácil de relacionar. Más específicamente, el tipo de movimiento y corrección del que estoy hablando es:
- El movimiento flotante no se limita al movimiento basado en fichas como Pokemon y otros juegos donde un toque de la plataforma de movimiento te mueve un cuadrado en esa dirección cardinal. Este movimiento flotante debería ser capaz de lograr un movimiento diagonal.
- Si caminas hacia el oeste y llegas a un muro diagonal en dirección noreste / suroeste, eres corregido a un movimiento suroeste incluso si continúas presionando a la izquierda (oeste) en el controlador. Esto debería funcionar para ambas diagonales que corrigen en ambas direcciones.
- Si está a unos pocos píxeles de caminar directamente hacia una puerta o pasillo, se le corrige al caminar por el pasillo o por el pasillo, es decir, chocar contra la esquina hace que lo empujen hacia el pasillo / puerta.
He buscado formas eficientes de lograr esto y no he tenido suerte. Para ser claros, estoy hablando del movimiento del personaje humano, no del movimiento de un NPC. ¿Están disponibles sus recursos en este tipo de movimiento? ¿Ecuaciones o algoritmos explicados en una wiki o algo así?
Estoy usando el Marco XNA, ¿hay algo en él para ayudar con esto?