Godot Engine – Cámara en movimiento y Z Index

Esto que se ve en el siguiente vídeo es lo que se va a intentar explicar.


 

 

 

 

La idea no es desarrollar un juego completo pero si ver como usando godot podemos de forma muy sencilla que un personaje, un avión, un animal, … se mueva por delante o por detrás de algo, por encima o por debajo.

Se puede bajar el proyecto de godot desde aquí: kinetinverso.zip

El nombre del proyecto no tiene mucho que ver con lo que se hace pero le puse ese y se ha quedado así.

 

 

Lo importante que merece la pena explicarse un poco.

 

Las nubes las he sacado de aquí: https://opengameart.org/content/fluffy-clouds

El avión desde aquí: https://opengameart.org/content/titan-battlecruiser

 

Las nubes son en realidad muy pesadas y no están bien trabajadas. Lo ideal es nubes menos pesadas y colocadas mediante código.

Como aún no he nombrado los tilemaps y las regiones en los sprites (y el editor de región) pues nos vale esto.

Lo importante es que esos sprites pueden estar en diferentes niveles que el sprite del avión.

 

 

En el Inspector si hemos seleccionado el sprite al que hemos añadido la textura de una nube saldrá Z Index. Si lo desplegamos podemos alterar eso y poner -1 por ejemplo.

Si el avión está en 0 y la nube en -1 lo normal es que al pasar por encima la nube quede debajo. Y si queremos que quede por arriba pues la ponemos a 1 por ejemplo.

 

Este ejemplo es para mostrar simplemente eso. Para ello he usado más nodos que se explicarán en otros posts.

He puesto un poco de código para que se mueva el avión. En realidad no se mueve pero la gravedad inversa lo atrae.

 

Respecto a la cámara al colocarla en el mismo nodo que el avión y activando está como la actual se irá moviendo conforme se mueve el nodo.

 

 

Si nos fijamos “current” viene desactivado normalmente cuando se añade una cámara. Ponerlo en true se puede a golpe de click o mediante código.

Lo normal en un juego es que si tienes diferentes cámaras (camaras2d por cierto) pues al pasar de una a otra se haga eso mediante código.

 

La cámara no necesariamente ha de perseguir al personaje. Esta vez lo he puesto así pero puede estar el personaje parado y que sea el fondo el que se mueve.

 

Una bonita cosa para jugar con las cámaras es añadir otras fuera del nodo del avión y colocarlas en alguna zona en la que tarde o temprano pasará el avión.

De esa forma veremos como pasa y poco más.

 

Y es importante comentar que aparte de diferentes niveles de profundidad en los objetos la sensación de velocidad no existe sin que tengamos elementos.

Un avión sin nada de fondo por mucho que se mueva no dará sensación de estar moviéndose a más velocidad.

 

En fin. Esto da mucho “juego”.

Ir a la barra de herramientas