Estoy haciendo un juego isométrico. Cuando el jugador intenta caminar diagonalmente hacia una pared, quiero que se deslicen suavemente sobre ella, de modo que se use cualquier parte del movimiento que sea legal, y se deseche cualquier cosa en la dirección de lo normal. Las paredes pueden ser de cualquier ángulo, no solo verticales u horizontales, y el jugador tiene movimiento 360.
Siento que casi estoy allí, pero no puedo poner la última pieza en su lugar.
Actualización: ¡buenas noticias para todos! Lo tengo funcionando. Pero ... estoy un poco confundido sobre lo que debería normalizar y lo que no. Lo normal solo necesita ser un vector unitario, ¿verdad? pero luego estoy mezclando eso con mi entrada, así que estoy normalizando eso, ¿me equivoco?
Por cierto, también descubrí que necesito empujar al jugador 1 píxel en la dirección normal, para que no se atasque en las cosas, funciona bien.