Soy nuevo en el diseño de juegos y realmente no sé cómo se hacen las cosas. Estoy pensando en construir un juego para iOS en el que un barco tenga que volar lo más alto posible (a velocidades variables), recogiendo potenciadores, etc., en el camino.
¿Cuál es el camino a seguir aquí? ¿Deberían el fondo y los elementos desplazarse hacia abajo desde la parte superior o la nave realmente debería volar moviendo la vista con ella?
Respuestas:
Todo es relativo. Realmente, siempre estás transformando tu vista en relación con tu posición fija de jugador.
Entonces, olvidando la pantalla por ahora, digamos que tiene estos 3 pasos (que representan las posiciones a medida que se actualizan en cada ciclo de juego):
playerWorldPosition = 50, 100; objectWorldPosition = 60, 200;
playerWorldPosition = 55, 110; objectWorldPosition = 60, 160;
playerWorldPosition = 60, 120; objectWorldPosition = 60, 120;
(como x, y en cada caso)
Como puede ver, el jugador está volando hacia arriba o saltando y moviéndose ligeramente hacia la derecha, mientras que el objeto (podría ser un encendido) está cayendo hacia abajo. El jugador atrapa el powerup. Ahora, ¿cómo dibujas esto en pantalla?
Primero, supongamos que quiere que su jugador esté en el centro de la pantalla en todo momento. Entonces, la vista se bloquea para el jugador: este es el enfoque más simple para visualizar. La posición de su jugador siempre será
screenCentre
(es decirscreenWidth/2, screenHeight/2
). ¿Cómo se obtiene la posición en pantalla de otros objetos en el mundo?Puedes ver que esta fórmula funciona incluso para el jugador real, ya que
(playerWorldPosition- playerWorldPosition) + screenCentre
es igual ascreenCentre
. Por lo tanto, puede aplicar la misma fórmula a cada entidad en su juego, ejecutando una lista. Puede utilizar este enfoque simple para desarrollar otras cosas (como el retraso de la cámara, los casos en que se encuentra en la esquina de un nivel, etc.)fuente