Estoy a punto de comenzar a desarrollar un juego de desplazamiento lateral donde el objetivo del jugador es viajar lo más lejos que pueda en el eje horizontal antes de tocar tierra. Tenga en cuenta que no necesito volver a viajar en el eje horizontal.
Estoy desarrollando esto con AndEngine para Android que usa OpenGL y Box2d.
Antes de comenzar, necesito decidir algo importante: ¿debo usar el mundo que rodea al jugador para simular el movimiento o realmente mover al jugador y seguirlo con las características de la cámara del motor del juego?
Ambos enfoques parecen tener diferentes puntos fuertes y retrocesos, por lo que no sé cuál se considera mejor. Por ejemplo, ¿qué haría más fácil agregar potenciadores en el camino y tener un lindo fondo animado?
¡Gracias!
Respuestas:
Mueva la cámara (conectada a su reproductor). Me imagino que tu mundo tiene múltiples objetos como enemigos. Si seguía moviendo el mundo, tendría que recorrer todos estos objetos para actualizar sus posiciones cada vez que el mundo se moviera.
Si mueve el reproductor y conecta la cámara al reproductor, el uso de recursos es mínimo. El juego llegará a su fase de renderizado, recorrerá todo una vez como lo hace en cada cuadro y los dibujará en la posición: cámara.posición. La posición de la cámara siempre sería igual a la posición de tus jugadores en este caso.
fuente
camera.setChaseEntity(player);
para lograr esto.Siempre muevo la cámara y la recomendaría; hay muchas razones por las que prefiero esto, pero la más importante probablemente se reduce a esto:
Si mueve la cámara y el reproductor, solo hay dos entidades que deben actualizarse para desplazarse por la pantalla.
Si mueve el mundo entero cada vez que la pantalla necesita desplazarse, eso abarca un número desconocido y posiblemente un gran número de entidades que deberán actualizarse.
fuente
Realmente es bastante trivial, realmente no hace una diferencia de las cosas que has descrito.
O mueves el fondo más allá de la cámara y el jugador, o mueves el jugador y la cámara con él. Supongo que hay una cosa menos que hacer si solo mueves el fondo.
Aunque supongo que si mueves el fondo, tendrás que ser padre de cualquier recolección y enemigo, lo que, de nuevo, es trivial pero es algo en lo que debes pensar.
Personalmente, movería al jugador porque me gusta que las cosas se hagan de una manera más realista.
fuente
Otras respuestas son buenas, pero me gustaría agregar algunos puntos de lo que es mejor, con la esperanza de ayudar a alguien que intente tomar la misma decisión para un proyecto diferente.
Moviendo al jugador:
player.x += 5;
(pseudocódigo).Moviendo el mundo:
0
.0
.Al final del día, depende del proyecto. Si alguien está haciendo un clon original de Mario, mover el mundo podría ser complicado, mientras que mover el reproductor realmente no crea muchos problemas. Sin embargo, queriendo hacer un gran juego de mundo abierto, puede ser mejor mover el mundo.
fuente