0% encontró este documento útil (0 votos)
16 vistas14 páginas

Manual CLASE 5

Este documento explica los pasos para continuar desarrollando enemigos en un videojuego, incluyendo agregar una versión más pequeña del enemigo, cambiar el tamaño de la forma de colisión, agregar un script, exportar variables de velocidad, y crear una escena mundial para instanciar los enemigos y el jugador.

Cargado por

franyer
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas14 páginas

Manual CLASE 5

Este documento explica los pasos para continuar desarrollando enemigos en un videojuego, incluyendo agregar una versión más pequeña del enemigo, cambiar el tamaño de la forma de colisión, agregar un script, exportar variables de velocidad, y crear una escena mundial para instanciar los enemigos y el jugador.

Cargado por

franyer
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 14

14 DE JULIO DE 2020

DESARROLLO DE
VIDEOJUEGOS
CLASE #5: CONTINUANDO CON EL ENEMIGO

LUIS PEDRO GARCÍA GRAJEDA


COLEGIO DE CIENCIAS COMERCIALES EL PROGRESO
Laboratorio II – 5to. Bachillerato
Manual CLASE #5 – Continuando con los enemigos

Paso 1: Abrir ambas escenas.


Aunque no es estrictamente necesario tener ambas escenas abiertas por el momento, lo haremos para
conocer y acostumbrarnos a este procedimiento inicial. En el inspector de archivos busca las dos escenas (con
el nombre asignado anteriormente) y realiza doble clic sobre ellas. Luego cambia a la vista 2D si es necesario.

Paso 2: Agregando otra versión del enemigo (más pequeño).


Para darle cierta variedad a los enemigos, agregaremos una versión más pequeña (los mismos sprites pero al
60% de su tamaño). Con el objetivo de facilitar el proceso, también adjunto en la descripción del video esta
nueva versión de los Sprites enemigos (y así evitar el proceso de cambio de tamaño en un software de
edición). Ahora, debemos repetir el procedimiento ya conocido: Ubicar el Sistema de Archivos y dar clic
derecho sobre res:// y luego clic sobre la opción Abrir en el Explorador de Archivos
Y te abrirá la carpeta donde se encuentran almacenados los archivos:

Ingresaremos a la carpeta Sprites que creamos en la clase #1, y luego extraemos los archivos compartidos por
el profesor dentro de dicha carpeta.

Puedes descargar los nuevos archivos desde este enlace: https://bit.ly/spritesmini


Y luego creamos una nueva animación: Abrimos el panel SpriteFrames (teniendo seleccionado el nodo
AnimatedSprite), Creamos una nueva animación que llamaremos “mini” y arrastramos los sprites que
acabamos de descomprimir (navegando en el sistema de archivos):

Por último, asignamos la velocidad de frames (FPS) que consideremos adecuada.


Paso 3: Cambiando el tamaño de la forma de colisión.
Para que la CollisionShape encaje de mejor manera con la versión pequeña de nuestro enemigo,
redimensionaremos su tamaño (haciéndola más pequeña, ya que posteriormente en programación podremos
aumentar su tamaño en base a los códigos escritos). Para empezar, con el nodo AnimatedSprite seleccionado,
nos aseguramos de que el atributo Animation se encuentra con el valor “mini” (o sea, la animación principal
de nuestro enemigo será la versión pequeña que acabamos de agregar).

Luego seleccionamos el nodo CollisionShape2d y cambiamos el tamaño de la figura celeste manualmente.

Paso 4: Agregando un Script para el enemigo.


Con el nodo Monsturo seleccionado, presionamos el botón de añadir script (pergamino blanco con signo + de
color verde):
Y en la ventana dejamos los valores predeterminados, excepto el de Plantilla, en el cual seleccionaremos
Empty (esto servirá para que nuestro script inicie completamente vacío, sin las funciones predefinidas ni
ningún otro código)

Finalizamos este proceso haciendo clic en Crear.

Paso 5: Exportando variables para la velocidad.


En el nuevo scrpit, debajo de la línea de código del Extends, exportaremos dos variables de tipo entero (int),
una que servirá para nuestra velocidad mínima (vel_min) y otra para nuestra velocidad máxima (vel:max), tal
como se muestra a continuación:

Luego de esto podrás visualizar los atributos Vel Min y Vel Max en el inspector. Ahora solo agregaremos
valores en estos dos atributos y para ello (con el nodo raíz Monstruo seleccionado) colocaremos 150 como
Velocidad Mínima y 250 como Velocidad Máxima (puedes cambiar estos valores a tu gusto, según lo
consideres conveniente)

NO OLVIDES GUARDAR LOS CAMBIOS PERIÓDICAMENTE.


Paso 6: Declarando la variable que contenga ambas versiones de nuestro monstruo.
Escribimos la siguiente línea de código:

Y notarás que dentro de corchetes tenemos las dos animaciones de nuestro monstruo, donde “enemigo” es la
versión de tamaño normal y “mini” es la versión más pequeña del mismo enemigo. IMPORTANTE: Verifica que
los valores “enemigo” y “mini” coincidan con los nombres de tus animaciones en el panel de SpriteFrames.

Paso 7: Creando la función _ready():


Agregamos el código para iniciar la función _ready() y dentro de la misma incluimos una línea de código para
hacer un llamado al nodo AnimatedSprite, específicamente a su animación según un dato aleatorio (randi) de
las opciones almacenadas en la variable de tipo array creada en el paso anterior:

Paso 8: Cambiando el tamaño de la colisión en base a una condición.


Con el siguiente código, haremos que la forma de colisión cambie dependiendo de cuál versión del monstruo
se ha generado (ya sea el enemigo de tamaño normal o su versión mini):

IMPORTANTE: Los valor de 1.4 pueden modificarse al gusto, según sea necesario, lo importantes es ir
haciendo pruebas y buscando el valor que mejor se adapte.

Paso 9: Trabajando con el nodo VisibilityNotifier2D.


Este nodo nos indicará si nuestro enemigo está apareciendo en pantalla (y podremos hacer que deje de
aparecer). Lo primero que haremos será cambiarle el nombre a “Visibilidad” para facilitar su manejo.
Ahora conectaremos la señal que indicará cuando el objeto salga de la pantalla. Para ello, teniendo
seleccionado el recién renombrado nodo Visibilidad, nos dirigimos al área de Nodos que aparece en una
pestaña al lado de Inspector y daremos doble clic sobre la señal screen_exited()

Y en la siguiente ventana dejamos los valores predeterminados, finalizando con el botón Conectar.

Por último, notarás que se agregó un código al final de nuestro script, el cual representa a la función que
acabamos de crear al realizar la conexión de la señal.

(De momento no cambies nada, pronto la utilizaremos)


Paso 10: Creando una nueva escena.
En el menú Escena seleccionamos la opción Nueva Escena:

Y pasamos a la vista 2D

Paso 12: Creando un nodo raíz para la nueva escena.


Damos clic sobre + Otro Nodo, buscamos un Nodo normal (Node) y finalizamos el proceso con clic en Crear.
Paso 12: Modificando e instanciando nuestro nuevo nodo
Vamos a asignarle el nombre “Mundo” a nuestro nodo, ya que este representará precisamente al mundo en el
que las escenas Player y Monstruo convivirán.

Ahora vamos a instanciar a la escena de nuestro Player en esta tercer escena (dicho de otra forma, con la
creación de esta instancia estamos diciendo que nuestro jugador principal podrá “aparecer” dentro de nuestra
escena Mundo). Para ello, debemos dar clic sobre el botón con forma de cadena que aparece en la parte
superior:

Y luego en la ventana de exploración que aparece, abriremos con doble clic la escena de nuestro jugador
principal, es decir, la escena Player.tscn

(Notarás que el jugador principal ya aparece en esta nueva escena).


Paso 13: Agregando nodos Timer.
Iniciamos agregando un nodo de tipo Timer y luego lo duplicamos hasta tener 3 nodos de los mismos.
Ya sabes, clic derecho sobre el nodo raíz (Mundo) y luego clic en Añadir Nodo Hijo:

Ahora buscamos el nodo Timer y lo agregamos con doble clic:

Y duplicamos con Clic Derecho  Duplicar sobre el nodo TImer, hasta tener 3 de estos:
Y por último cambiamos el nombre de los nodos Timer (Clic Derecho  Renombrar, sobre los nodos),
dejándolos de la siguiente forma:

NOTA: Puedes renombrarlos como quieras, pero ten en cuenta que mi futura explicación del código incluirá
estos nombres, por lo que, si los cambias a tu gusto, debes cambiarlos también al momento de programar.

Paso 14: Cambiando valores iniciales de los Timer.


Con el nodo MonstruoTimer seleccionado, nos dirigiremos al Inspector y cambiaremos el atributo Wait Timer
(tiempo de espera), asignándole el valor de 0.5 (para que cada medio segundo se vaya creando un monstruo
nuevo).

El Wait Time de PunteoTimer se quedará igual, ya que queremos que el punteo vaya subiendo por cada
segundo que el personaje sobreviva. Pero, el Wait Timer de InicioTimer si lo cambiaremos, asignando el valor
de 2 (para que el tiempo de espera para reiniciar la partida al perder sea de 2 segundos):

Y por último activamos el atributo OneShot (para que ya no se repita luego de activarse)
Paso 15: Agregando un nodo de posición.
Ya sabes, clic derecho sobre el nodo raíz (Mundo) y luego clic en Añadir Nodo Hijo:

Ahora buscamos el nodo Position2D y lo agregamos con doble clic:

Este servirá para poder indicar una posición en la pantalla (las coordenadas de inicio de nuestro juego).
Ahora lo renombramos como PosicionDeInicio:

Por último, cambiaremos los valores de posición manualmente, de forma que nuestro Player aparezca
exactamente en el centro de la pantalla (en el inspector cambiamos el valor de X por 640 y Y por 360)

Notarás que estos valores os obtuvimos dividiendo a la mitad el tamaño de la


ventana de nuestro juego (128/2=640 y 720/2=360).
Paso 16: Guardando la escena.
Como último paso de la clase de hoy, guardaremos la escena con el nombre que nos proporcione de forma
predeterminada (el cuel es Mundo, obtenido del nodo raíz).

(Recuerda que para llegar a esta opción debes dar clic sobre el menú Escena y luego Guardar Escena).

¡FELICIDADES! Acabas de terminar configuraciones adicionales para los enemigos y la escena Mundo… En las
próximas clases, seguiremos agregando código de funcionamiento, al igual que un menú principal y más…
IMPORTANTE:
El video de esta clase (y las demás) los estaré subiendo a mi nuevo canal de YouTube, no olvides suscribirte:
https://www.youtube.com/channel/UCQk2CugqAWxpsPE5B7kYvRw

¡Gracias infinitas por tu apoyo! ♥

También podría gustarte