PRÁCTICA GUIADA 5- Crear un juego de objetivos
En la siguiente práctica crearemos un juego de plataformas en la que podrás
disparar varias bolas. El juego consiste en dar al máximo número de
dianas/proyectiles posibles mientras se van moviendo por la pantalla, sin fallar
en ninguna ocasión o en las menos posibles. Y todo esto calculando la
orientación, la fuerza o energía con la que dispararán las bolas y con un fondo y
diseño bonito. Tendremos contabilización de tiempo en cuenta atrás y de puntos,
además de una barra de energía para poder calcular la fuerza con la que
dispararán las bolas.
¿Estás listo/a? ¡Vamos a comenzar!
EJERCICIO PRÁCTICO
PASO 1: Crea un nuevo proyecto.
Lo primero será entrar a [Link] entrar a nuestro perfil
con nuestro correo corporativo y hacer clic en la opción de proyecto nuevo.
Tras esto, escogeremos un nombre para nuestro proyecto, que en este caso se
llamará: Tarjet_Nombre_Apellidos, lo escribiremos todo junto y separado por ‘_’.
PASO 2: Añadir extensión necesaria.
Para comenzar deberemos añadir la extensión: carnival. Es más sencillo
realizar la búsqueda arriba desde el menú “Extensions”.
1
Lo seleccionamos y se instalará en nuestro proyecto nuevo.
PASO 3: Establecer el escenario/ fondo.
Desde el menú “Scene” seleccionamos el bloque para establecer un fondo.
Recuerda escoger una imagen de fondo o crearla tú mismo en la que sobre la
mitad del fondo quede una línea horizontal sobre la que se irán moviendo los
objetivos de los misiles.
PASO 4: Poner los objetivos flotando sobre la línea.
Para ello seleccionaremos un loop o bucle de para siempre (forever loop), para
que las instrucciones que pongamos debajo se sigan ejecutando durante todo el
tiempo que el juego esté activo.
Y dentro insertaremos proyectiles:
2
Y seleccionamos como queremos que aparezcan más o menos así:
En la parte izquierda veréis la simulación en la que aparecen muchos objetivos
moviéndose de izquierda-arriba a derecha-debajo de la pantalla, tal que así:
Nos queda entonces poner los objetivos moviéndose sobre la línea. Para ello,
seleccionamos la velocidad de y al valor 0.
¡Mirad ahora lo que ocurre en la simulación!
Ahora ya sólo nos queda que se quede sobre la línea horizontal, y para ello
tenemos que establecer que nuestros objetos proyectiles se queden a un valor x
que nosotros podamos seleccionar, vamos a seleccionar que los proyectiles
tengan su parte baja (bottom) en un valor para que aparezcan sobre la línea
horizontal de la escena. En mi caso en valor es: 56.
3
Ello lo haremos con:
Y queda sobre la línea roja horizontal (la línea roja la he puesto yo para indicaros
donde queda el horizonte cuanto los proyectiles ya aparecen en la simulación).
¿Dónde aparecen los vuestros?
PASO 5: Establecer el movimiento de los objetivos/proyectiles.
Como hemos visto en la simulación anterior, los proyectiles se mueven
demasiado rápido. Vamos a añadir un bloque de pausa para que entre la salida
de un objetivo y el siguiente pase un tiempo. Eso lo ralentizará un poco.
Ahora se ha ralentizado un poco, como podemos ver en la simulación:
Pero todavía no se aparece como queremos que lo haga. Queremos que lo haga
de manera imprevisible para que sea mucho más divertido para el jugador. Y eso
4
lo haremos poniendo en el tiempo de la pausa un número aleatorio desde el
menú “Math” (matemático), y pondremos por ejemplo que ese valor varíe desde
500 milisegundos a 2000 milisegundos. Podéis ir variando hasta que se ajuste a
lo que busquéis. Pensad que se tiene que poder jugar y aun así representar un
reto para el jugador.
Ahora ya nos aparece algo más divertido:
PASO 6: Cambiamos el tipo proyectil a enemigo en el juego.
Para eso añadimos a bucle de para siempre:
Quedará de la siguiente manera:
PASO 7: Añadir la bola arrojadiza con la que juega el jugador.
5
Para ello tendremos que seleccionar desde el menú “carnival” de la extensión
que hemos instalado al inicio de esta práctica, que la bola arrojadiza sea
jugada por el jugador y cómo será con:
La imagen de la bola la diseñaremos más o menos así:
En este momento nos quedará algo así en el bucle del comienzo:
Y en este momento la simulación aparecerá similar a esta:
6
Si os fijáis la bola se queda en la parte inferior-izquierda.
PASO 8: Establecer la bola arrojadiza.
Como hemos dicho antes, la bola no debería aparecer en esa localización.
Pensad que queremos que aparezca inicialmente en el área central y por debajo
de la línea horizontal, de ahí la selección de valores.
A continuación vamos a cambiarla con el bloque de continuación:
7
Perfecto, ahora en la simulación ya nos debería aparecer en el área que
queríamos:
PASO 9: Movimiento de la bola arrojadiza.
Ahora vamos a insertar el control de la bola arrojadiza, que será con las teclas
de las flechas y para eso insertaremos:
PASO 10: Añadir el trazo de la bola arrojadiza.
Para que el jugador pueda prever hacia donde se dirigirá la bola, podemos añadir
el trazo sobre la pantalla. Para ello añadiremos:
Y ahora veremos algo así:
PASO 11: Configurar el código para arrojar la bola.
Vamos a configurar que la bola se dispare cuando presionemos la tecla “A”, y
para ello tendremos que sacar del menú “Controller” el bloque correspondiente.
8
Cuando arrojemos la bola lo que en verdad veremos será otro objeto, otra bola
distinta, en este caso la diseñaremos de color azul como veremos a continuación:
Y el código que habremos insertado será:
Ahora podemos ver que lanzamos las bolas azules, pero cuando dan en el
objetivo no ocurre nada. Los objetivos los cambiamos a tipo “enemy” para poder
configurar lo que pasará cuando una bola de a un objetivo. Lo veremos en el
siguiente paso.
PASO 12: Establecer qué ocurrirá cuando una bola arrojadiza impacte
sobre un objetivo.
A continuación tenemos que programar para que cada vez que una bola de sobre
un objetivo cuente un punto. Y para eso iremos al menú de los objetos/Sprites y
seleccionaremos:
De tal manera que dentro de este bucle configuraremos qué ha de ocurrir cuando
ocurra que una bola golpee contra un objetivo:
Dentro deberán ocurrir varias cosas:
1. Que una vez que una bola impacte desaparezca su dibujo de la imagen y no
siga con la misma trayectoria, y que también desaparezca el objetivo impactado.
Para ello añadiremos:
9
2. Vamos a configurar la puntuación. Para ello sacaremos el bloque del menú
“Info”:
PASO 13: Poner un marco/cabina (booth).
Escogeremos el objeto/sprite renombrando al objeto con el nombre de
“mybooth” de la siguiente manera:
Diseñaremos un marco. Pondremos el tamaño con la configuración de pixelado
de fondo:
Y lo diseñaremos parecido a este:
10
Y para cambiar que los proyectiles y demás objetos no pasen por delante del
marco agregaremos que la profundidad del marco sea de 20 (por delante del
resto que por defecto quedarán a 0):
Quedando el código del bucle del comienzo:
PASO 14: Establecer que se resten puntos cuando una bola toque el
marco (es decir que no haya dado contra un proyectil).
Fuera de los bucles ya creados insertaremos el siguiente:
Antes de gestionar la resta de puntos, vamos a hacer que cuando una bola no
choque contra un proyectil pero si que choque contra el marco también
desaparezca con:
Y entonces podremos restar 1 punto con el siguiente bloque de la sección “Info”:
11
Quedará de la siguiente manera:
¡PROBAD QUE FUNCIONE! Que cuando la bola choca contra un proyectil
sume puntos y cuando choque contra el marco reste.
PASO 15: Establecer una barra de energía:
Al menú del comienzo añadiremos una barra de energía al juego del menú “Status
Bars”, con la siguiente configuración:
Le pondremos 120 píxeles de acho y 6 de alto. Y será del tipo “Energy”.
Ahora vamos a establecer que tenga un color diferente cuando esté lleno y se
vaya vaciando. Dejando que tenga el color amarillo y fondo morado.
Añadiremos también un borde a la barra de energía con 2 de anchura de borde
y color blanco para que destaque:
Como la barra nos aparece justo en el centro de la pantalla, vamos a moverla
para que quede en un sitio más estético y no moleste al jugador:
De esta manera poniéndolo 115 píxeles hacia abajo no molestará pero se
podrá ver claramente.
12
Finalmente, el bucle de comienzo de juego deberá quedar similar al siguiente:
PASO 16: Conectar el estado de la barra de energía con el poder de la
bola.
Para ello desde el menú “carnival” vamos a establecer el siguiente bloque al
mismo bloque de comienzo:
Con este último bloque podremos predecir la fuerza con la que lanzaremos la
bola.
Resultado del bucle completo para comprobar que todo quede correctamente
programado:
13
PASO 17: Añadir entretenimiento con sonido.
Para hacer este juego todavía más divertido, vamos a añadir sonidos. Lo
programaremos para que suene cuando la bola choque contra un proyectil con
el sonido “da bing”:
PASO 18: Añadir cuenta atrás.
En este paso vamos a añadir una cuenta atrás de 30 segundos hasta que termine
el juego y además queremos que cuando finalice el juego nos muestre la mejor
puntuación.
Para ello añadiremos el siguiente bloque al bucle de inicio:
14
Resultado del bucle completo para comprobar que todo quede correctamente
programado:
PASO 19: Juega tu juego hasta que se acabe el tiempo. Comprueba que
funcione todo como debería.
PASO 20: ¡Ahora hazlo tuyo!
Puedes personalizar cualquiera de las animaciones para personalizar el
juego. ¡Intenta remezclar algunos de los trucos y crea una nueva animación
de volcadas!
Guarda el proyecto en un archivo con tu nombre, diciendo que es
la actividad Práctica5 y súbelo a Aules.
ACTIVIDAD
15
Para guardar el archivo es importante que todos lo descarguemos para trabajar
con él en el mismo hardware. Por convenio lo descargaremos todos en el
siguiente formato (MakeCode Arcade Pi):
Enlace vídeo explicativo [Link]
16