La mejor respuesta
Para un juego de plataformas en 2D (de lado a lado), la forma más sencilla de pensar cómo Hacer esto haría que los jugadores se transformaran y que el Sprite Renderer volteara de esa manera y la velocidad del Traductor también cambiara de esa manera. Realmente no hay búsqueda de caminos en un juego de plataformas para un enemigo. Un ejemplo sería algo como:
[SerializeField] Transform player;
[SerializeField] SpriteRenderer rend;
[SerializeField] float speed;
void Update()
{
if(player.pos.x < transform.position.x)
{
renderer.flipX = true;
transform.Translate(new Vector2(-speed, 0f));
}
else
{
renderer.flipX = false;
transform.Translate(new Vector2(speed, 0f));
}
Respuesta
Uno de los proyectos en los que estaba trabajando cuando tenía tiempo (= entre trabajos: d) era un 2d de bajo nivel muy clásico y de la vieja escuela motor de juego basado en sprites, adecuado para plataformas y similares. Solo porque sí.
En realidad, es muy divertido de abordar, escribir tu propio motor 2d, es lo suficientemente pequeño como para que puedas hacerlo trabajar solo dentro de unos meses en lugar de Más que años, así que no es como un gran motor 3D en el que es un proyecto de pastel en el cielo en el que nunca puedes hacer un juego con él. Sigue siendo bastante razonable, aunque un poco anacrónico, poner en marcha tu propio motor 2d.
La mayoría de mi motor de juego (escrito en C ++, sobre Win32 simple) consistía en: - clase de gráficos (un lienzo de bajo nivel donde puede dibujar líneas, polígonos o píxeles sin formato) - clase de sprite, para dibujar animaciones y sprites combinando piezas de una imagen, así como dibujar texto en mapa de bits - clase de conjunto de mosaicos, para administrar fondos de conjunto de mosaicos - una jerarquía de clases de interfaz de usuario con componentes simples ( botones, paneles, cuadro de lista, etc.) - un motor de física simple (nada sofisticado, solo algo que te permite mover objetos con cierta velocidad y provocar una colisión con otros objetos y el escenario) - una clase de sonido simple - el juego principal máquina de estado de bucle / juego que unió todo esto, envió mensajes de mouse y teclado, envió eventos a los objetos de la interfaz de usuario, renderizó todos los sprites, actualizó todos los objetos de física, etc. es básicamente el "corazón" del juego. Si desea comprender cómo funcionan los juegos básicos (e implícitamente los motores de juego), concéntrese en esta área, administrando el estado del juego, los eventos del juego y el ciclo principal de actualización / extracción. - el código de dibujo de Win32 dependiente de la plataforma en solo un archivo pequeño
También escribí algunos convertidores de archivos, un editor de mosaicos y un editor de animación usando .NET / C ++ / CLI para acompañarlos. Realmente, la mayor parte del trabajo consistió en escribir las clases de sprites y física, así como el editor de sprites.