Creación de Videojuegos. Godot Engine. Cámara 2D

Tema 15. Godot Engine. Cámara 2D

Con la cámara 2D podemos recorrer más extensión del escenario que hasta ahora hemos visto. Hasta ahora, hemos creado un escenario del tamaño de nuestra resolución, óptimo para juegos donde su desarrollo sea de una única pantalla, es decir,  donde se desenvuelve todo el juego.

Con la cámara 2D podemos el personaje podrá recorrer más zonas del escenario que no se ven. Es decir, el personaje tendrá una cámara que le proyectará y por las zonas en las que se va moviendo. Esto es útil para crear juegos donde el personaje realiza recorridos más largos que la propia pantalla.

Gracias a la cámara, podemos crear niveles adicionales más largos, que nuestro personaje irá recorriendo.

Crearemos un nivel con plataformas que traspasan los límites del escenario. En el ejemplo observaremos que se crean plataformas hacia la derecha, se deja un hueco, y debajo se vuelven a crear plataformas.

Creamos plataformas que superen los límites del escenario. Cámara 2D Godot.
Creamos plataformas que superen los límites del escenario. Cámara 2D Godot.

Nuestro escenario tiene un límite de 800×480, por lo que cuando el personaje llegue al final del escenario, desaparece por el lado derecho. El personaje sigue estando ahí, pero no lo podemos ver porque nuestro escenario tiene límites. 

Gracias a la cámara, haremos que ésta siga al personaje y de esta forma también le veremos en cada lugar por donde vaya.

CÁMARA EN LA ESCENA

Por lo tanto, añadiremos un Nodo de tipo Cámara2D que será hijo de la Escena principal que hemos creado.

Nodo Camera2D. Godot
Nodo Camera2D. Godot

Hay que tener en cuenta que esa cámara será hijo del Player y por lo tanto, si la ponemos como nodo hijo del Player, en el nodo Escena, la cámara solo será representativa para el player en ese nodo Escena. La mejor forma de implementar la cámara2D es añadirla en el Nodo Player como hijo. En este primer ejemplo añadimos la Cámara a la escena. Más abajo, en el segundo ejemplo, añadiremos la cámara al Nodo Player (mejor opción). La Cámara2D está asignada a la Escena1 como hijo del Nodo Player.

Asignamos la Cámara2D a la escena. Godot
Asignamos la Cámara2D a la escena. Godot

Ahora ACTIVAREMOS la propiedad Current para que la cámara siga al Jugador.

El área de la cámara aparece en forma de rectángulo de color morado. Podemos seleccionar esa área haciendo Click sobre la cruz roja y mover dicha área donde se nos acople mejor y el personaje se vea mejor y más centrado.

El área de la cámara aparece en forma de rectángulo de color morado. Godot
El área de la cámara aparece en forma de rectángulo de color morado. Godot

También podemos cambiar el zoom de la cámara. Si queremos una vista más amplia (a cambio de reducir el tamaño de la escena) podemos aumentar los parámetros del zoom X e Y

Podemos aumentar los parámetros del zoom X e Y. Godot
Podemos aumentar los parámetros del zoom X e Y. Godot

Por otro lado, si añadimos la Cámara2D al Nodo Player, el personaje siempre tendrá dicha cámara para todas las escenas en las que se encuentre. Veremos el ejemplo más abajo.

Cámara2D en el Nodo Player. Godot
Cámara2D en el Nodo Player. Godot

Aquí tenemos el resultado si nos movemos hacia la derecha:

Nos movemos con la cámara2D. Godot
Nos movemos con la cámara2D. Godot
AJUSTES. FULLSCREEN

Para comprobar que nuestro proyecto funciona bien podemos activar la opción de FullScreen en la Configuración de nuestro proyecto:

Display -> Window -> Activamos FullScreen

Ajuste FullScreen para visualizar un nivel superior de detalles. Godot.
Ajuste FullScreen para visualizar un nivel superior de detalles. Godot.

si hacemos Play veremos nuestro juego en pantalla Completa para ver imperfecciones. Para salir de la pantalla Completa hay que pulsar una combinación de teclas. En iMAc es CMD+Q

En Linux puede ser CTRL+Q

También podemos realizar algunos ajustes en la cámara como hemos dicho anteriormente:

Cambiar el zoom

También podemos cambiar el margen Horizontal y Vertical de la Cámara: mediante las propiedades Offset H V

Propiedades Zoom de la Cámara 2D. Godot
Propiedades Zoom de la Cámara 2D. Godot
2º EJEMPLO. AÑADIMOS LA CÁMARA AL NODO PLAYER

En este ejemplo añadimos el Nodo Cámara 2D como hijo de Player2 en el Nodo Player.

Cámara 2D asignada al Nodo Player. Godot
Cámara 2D asignada al Nodo Player. Godot

Si nos fijamos en el Nodo Nivel1, observaremos que el Nodo Cámara2D no se muestra, ya que es hijo en el Nodo Player.

El Nodo Cámara2D no se muestra, ya que es hijo en el Nodo Player. Godot
El Nodo Cámara2D no se muestra, ya que es hijo en el Nodo Player. Godot

Activaremos la propiedad Current.

La propiedad Smoothing (suavidad) nos permite establecer un movimiento más suave de la cámara. La activaremos. Notaremos un desplazamiento suave de la cámara cada vez que el personaje se detiene.

La propiedad speed nos permite establecer ese desplazamiento suave de la cámara. Seremos nosotros los que lo ajustaremos en función de nuestro juego.

Otra de las características de la cámara es que si por ejemplo, el personaje salta, el escenario también se mueve con el personaje y provoca que los tiles del suelo desaparezcan por unos momentos de la pantalla. En un juego de plataformas no se recomienda esta acción.

Modificamos los parámetros Límite de la cámara.

Parámetros Límite de la Cámara2D. Godot
Parámetros Límite de la Cámara2D. Godot

Al situar la cámara, por defecto, el personaje se establece en el centro. Podemos modificar los Límites de acción de juego según nos convenga:

Para poder hacerlo, la cámara no puede estar bloqueada con el candado.

Aquí vemos el Limit por defecto:

Limit por defecto en la cámara. Godot.
Limit por defecto en la cámara. Godot.

Vamos a cambiar el Limit Left a 0 y observamos la cámara:

Modificamos el Limit Left a 0 y observamos la cámara. Godot
Modificamos el Limit Left a 0 y observamos la cámara. Godot

La cámara queda así por la izquierda:

Límite de la cámara por la izquierda de la escena. Godot
Límite de la cámara por la izquierda de la escena. Godot

Probamos a modificar el Limit a:

Modificamos el Limit de la cámara. Godot.
Modificamos el Limit de la cámara. Godot.

Y para ver el resultado en el editor ACTIVAMOS la propiedad Editor -> Draw Limits

ACTIVAMOS la propiedad Editor -> Draw Limits. Godot
ACTIVAMOS la propiedad Editor -> Draw Limits. Godot

Resultado en color amarillo. Observamos cuales van a ser nuestros límites de cámara en el juego.

Límites de cámara en el juego. Godot
Límites de cámara en el juego. Godot

Como se puede observar se debe ajustar los límites según nuestro tamaño de pantalla.

A la parte izquierda y derecha del límite deberíamos poner pared para que no se saliese el personaje.

Escena con los límites activados. Godot
Escena con los límites activados. Godot

Si limitamos el juego a la zona amarilla, cuando el personaje salga por la derecha, desaparecerá ya que la cámara no le seguirá.

Por ejemplo, si nuestra pantalla (ajustes del proyecto)  tiene una dimensiones de 854×480

Y hay dos pantallas diseñadas en nuestra escena (mundo) podemos establecer el Limit a:

1708×480

Establecemos el Limit a las coordenadas de la configuración de ventana de nuestro proyecto. Doble ancho e igual de alto. Godot
Establecemos el Limit a las coordenadas de la configuración de ventana de nuestro proyecto. Doble ancho e igual de alto. Godot

ÍNDICE


0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x