¿Cómo maneja un juego 2D como Zelda el personaje que está detrás de los edificios donde solo se muestra una parte de él?

28

Estoy tratando de desarrollar un juego simple al estilo de Zelda. Este tema me ha resultado muy útil

¿Cómo manejó LoZ: un enlace al pasado las colisiones de sub-mosaico?

que estoy usando como referencia para desarrollar mi mecanismo de detección de colisión. Sin embargo, hay algo que no he podido entender. Cuando Link está detrás de los edificios, solo se muestra una parte de él. ¿Alguien puede ayudarme a comprender cómo se puede lograr este efecto? ¿No es el edificio parte del fondo?

Tinadm
fuente
Me gusta pensar que el estilo de renderizado tiene una capa de suelo (césped, suelo de baldosas, etc.), una capa de objetos (macetas, enemigos, shurbs, enlaces, etc.) y una capa de cielo (tejados, macetas elevadas, copas de árboles). , etc.) La lógica para mover cosas entre capas puede ser un poco extraña en el ejemplo de macetas, pero eso es otro asunto.
Benjamin Danger Johnson

Respuestas:

32

Los juegos en mosaico 2D generalmente tienen más capas que se representan en diferentes capas, algunas se muestran en segundo plano y otras encima del jugador.

Esa parte del techo se ve por encima del jugador y es por eso que el jugador puede ir detrás de ese edificio.

Aquí está el ejemplo de la imagen de mi juego para explicar mejor: ingrese la descripción de la imagen aquí

Blodyavenger
fuente
Entonces, ¿el edificio en sí puede ser parte del fondo, pero el techo es parte de una capa diferente dibujada en la parte superior de la capa con los sprites?
Tinadm
2
@Tinadm no necesariamente tiene que ser todo el techo, podría ser solo la sección del techo que se dibujaría sobre el jugador que se renderiza después de todo lo demás.
Tetrad
77
+1 para gráficos increíbles. Realmente ayuda a los alumnos visuales.
UnderscoreZero
1
Estoy bastante seguro de que los viejos SNES JRPG utilizaron la misma técnica. FF2, FF5, etc. La técnica sigue siendo válida.
Hatoru Hansou
1
Puede ver esto bastante bien con emuladores, por ejemplo, ZSNES, que le permiten activar y desactivar capas individuales manualmente.
Tobias Kienzler
5

Si bien la respuesta de Blodyavenger cubre la forma más probable de hacerlo, aquí hay otra posibilidad que permitiría un cambio de perspectiva fácil (por ejemplo, cuatro u ocho direcciones diferentes, o algunos niveles de elevación de la cámara):

Considere la vista de arriba hacia abajo de su mapa, p. Ej.

  ABCDEFGHIJKL
1 +-----=----+
2 |  .    .  |
3 |    X   o |
4 | .        ||
5 |    .   . |
6 +--=-------+

Donde, por ejemplo, Xmarca un pilar alto. Para cada objeto, almacena imágenes de todas las perspectivas posibles (o usa lo mismo ...), que pueden ser arbitrarias en muchos mosaicos de altura. Ahora, al dibujar, simplemente comience con la columna o fila que está en la parte posterior en la perspectiva actual, por ejemplo, la fila 1 si mira desde el sur. Después de eso dibuje la fila / columna la segunda más hacia atrás y así sucesivamente. De esta manera, cuando algo es más alto que un mosaico (extendido a la perspectiva actual), simplemente sobregirará lo que hay detrás.

(Perdón por la falta de buenas fotos, no soy muy bueno con los gráficos aplicados ...)

Tobias Kienzler
fuente
Observe cómo puede cambiar fácilmente la elevación de la cámara de esta manera estirando las texturas de los objetos
Tobias Kienzler
1

Debería tener una variable de profundidad y dibujar primero las imágenes con mayor profundidad, luego las otras con menor profundidad. Y la profundidad de cada objeto debe ser igual al negativo de su coordenada y.

Depth=-y

Ahmed Elyamani
fuente