Plataformas lejanas - Juego de Plataformas 2D (6)


En juegos de plataformas como Mario, podemos observar que durante un nivel hay plataformas por las que podemos pasar caminando sin que ellas activen su colisión, y en caso de que nos pongamos sobre ellas, se active su suelo. Hoy vamos a hacer algo así para el juego.
> El proyecto que puedes usar como guía se encuentra aquí.

Creando los nodos


Ya vimos en otro artículo el lugar donde se ponen los Tilemaps del nivel. Dentro del Tilemap de las tierras "lejanas" vamos a tener un área2D que se encargue de guardar todos los puntos de colisión con alguno de los tiles de esas tierras. Dentro del área2D tenemos que poner todos los CollisionShape2D sobre las plataformas en las que queremos pasar.

Como se pueden dar cuenta, el CollisionShape2D tiene que sobresalir un poco en el eje X de la plataforma. Ya que cuando el jugador toque ese punto que queda fuera, la plataforma se va a ocultar, y cuando el jugador salga del CollisionShape2D la plataforma se vuelve a poner.

Cuando el jugador salte, saldrá de la plataforma y volverá a caer en el collider que tiene el Tilemap. Ignorando el área2D, ya que se encuentra reducida en el eje Y y no lo tocaremos.

Usando las señales


Como pueden ver, el Area2D tiene señales al lado de su nombre. Para ponerle señales a un nodo tenemos que hacer clic en la pestaña "Nodo" que se encuentra al lado del inspector (después de haber hecho clic en el Area2D o el nodo que quiere emitir señal):

Tenemos dos señales, la primera es en caso de que un cuerpo físico entre en un CollisionShape del área y la segunda en caso de que salga.

Para añadir una señal, hacemos clic en el nombre de la misma y después en el botón de "Conectar" para que busquemos un script.

Después hacemos clic en el nodo que tiene el script al que queremos enviar una señal:

Y en la parte inferior confirmamos:

Cambiando las mascaras de colisión


Ya tenemos las dos funciones que se agregaron por las señales del área. La primera se encarga de cambiar la capa del tilemap por una superior y la segunda de volver a poner su capa normal. Sólo tenemos que obtener el nodo del tilemap y usar sus funciones de "collision_layer" y "collision_mask" para cambiar la posición del collider y evitar que choquemos


Con esto ya hemos terminado. Espero que les sea de utilidad esta información.

Desde el Nautilus, me despido

1 comentario:

Con la tecnología de Blogger.