Skip to main content

MONTAJE 9 SPRITEVOLADOR

¿Qué es un acelerómetro?

El acelerómetro tiene el mismo efecto que el Joystick, nos da valores en el eje X o eje Y, en el caso del Joystick lo daba la inclinación de la palanca, en este caso lo da la inclinación del mismo Echidna.

Está conectado a los pines analógicos:

  • A2 nos da la inclinación en el eje X
  • A3 nos da la inclinación en el eje Y

Los valores van desde 250 hasta 500

MONTAJE 9 SPRITEVOLADOR

Vamos a realizar un sencillo videojuego: Mover un sprite volador, el movimiento de un sprite con el acelerómetro y esquivando edificios que se mueven de derecha a izquierda dando la sensación de que el sprite vuela.

El reto te lo complicamos con dos premisas:

  • Modificar disfraces del sprite
  • Reutilizar sprites externos desde Scratch

Este programa tienes tres pasos

  1. Sprite volador moviéndose según acelerómetro
    1. Le añadimos un disfraz de explosión reutilizando de otro Sprite "sun"
    2. Movimiento según acelerómetro
  2. Sprite edificios
    1. Exportación de sprites externos de otro autor
    2. Importación a nuestro proyecto
  3. Muerte del sprite volador si toca edificio. Aquí es el código propio del juego

A SOLUCIÓN CON ECHIDNASCRATCH

A1 Sprite PARROT moviéndose según acelerómetro

A1.1 Añadir un disfraz al PARROT de explosión. 

  1. Quitamos el sprite del gato y añadimos el sprite SUN
  2. Entramos en edición del sprite
  3. Lo tuneamos un poco para que parezca una explosión (simplemente pintar de rojo el centro)
  4. Lo exportamos
  5. Guardamos con explosion.svg

2024-12-06 08_45_02-EchidnaML.png

Ahora añadimos el Sprite PARROT y al sprite PARROT le ponemos el disfraz de explosión:

  1. Añadimos el sprite PARROT
  2. Borramos el anterior SUN ya no lo necesitamos
  3. Entramos en Edición del sprite
  4. Menú del disfraz (costume)
  5. Upload costume
  6. elegimos el fichero creado anteriormente "explosion.svg"
  7. Abrimos
  8. Ya tenemos un disfraz añadido al Parrot. Clica en el primer disfraz pues cuando vuelvas a la ventana de código verás el de explosión si no lo haces.

2024-12-06 08_55_12-EchidnaML.png

Otra manera más fácil sería simplemente añadir un disfraz de los sprite por defecto y en paz

2024-12-06 09_02_39-EchidnaML.png

A1.2 Movimiento del sprite PARROT 

Vamos a hacer que el pájaro se mueva según el acelerómetro: (Ver al final DETALLES MAPEO)

2024-12-06 09_12_19-EchidnaML.png

A2 Sprite EDIFICIO moviéndose de derecha a izquierda

Dará sensación al sprite pájaro que está volando.

A21 Exportación de Sprites externos

Vamos a ser vagos: Nos vamos a copiar de alguien externo: 

Entramos en este proyecto FLY de scratch https://scratch.mit.edu/projects/113582791/ entramos en su código y exportamos los edificios, nubes, etc...

2024-12-06 09_16_21-Fly, fly, fly !!! on Scratch.png

Una vez dentro del editor EXPORTAMOS ESTOS SPRITES

2024-12-06 09_19_07-Configuración.png

Simplemente botón derecho y EXPORTAR

echidna-helicoptero2.jpg

Y guardamos esos ficheros generados Buildings2.sprite3 Clouds.sprite3 Cloud.sprite3 Buildings.sprite3

A22 Importación de los Sprites externos

  1. Entramos en Añadir Sprite
  2. Upload
  3. Elegimos los ficheros exportados anteriormente en A21

2024-12-06 09_22_17-EchidnaML.png

INCREIBLE
nos importa el Sprite CON SU CÓDIGO INCLUIDO si le das a la Bandera verás que el efecto sin apenas realizar trabajo

A3 Muerte del PARROT

Ya lo tenemos casi, añadimos al bucle de PARROT un condicional:

  • Si PARROT toca BUILDINGS o BUILDINGS2 entonces
    • Cambia de disfraz EXPLOSION
    • Envía mensaje komunikat1 que es el que utiliza el autor de los edificios para parar su movimiento, (debe de ser ruso su autor)

2024-12-06 10_07_06-EchidnaML.png

MEJORAS
Ya sé que colocando el helicóptero siempre arriba, siempre ganas!!
HAZ QUE SOLO SI TOCA BUILTING1 MUERE, PERO SI TOCA A BULDING2 QUE GANE UN PUNTO de esta manera ya no se gana poniendo el helicóptero arriba del todo

Todos los programas de este curso se encuentran en este repositorio: https://github.com/JavierQuintana/Echidna

B SOLUCIÓN CON mBlock

B1 Sprite helicóptero moviéndose según acelerómetro

B11 Añadir un disfraz al helicóptero de explosión. 

Vamos a añadir un objetos: helicóptero de la biblioteca- Le vamos a añadir un disfraz explosión

1.- Añade un objeto sun, y borra el dibujo interior, y así parece una explosión

echidna-helicoptero1.jpg

2.- Exporta el fichero imagen svg

echidna-helicoptero5.jpg

3.- Añade al helicóptero el disfraz 

echidna-helicoptero6.jpg

4.- Eligiendo el fichero svg exportado en el paso 3

echidna-helicoptero7.jpg

B12 Movimiento helicóptero

Vamos a hacer que helicóptero que se mueva según el acelerómetro: (Ver al final DETALLES MAPEO)

echidna-helicoptero12.jpg

En el arduino le asignamos las coordinadas a las variables globales A2 y A3

echidna-helicoptero11.jpg

B2 Solución edificio, cómo se reutiliza un sprite

B21 Exportación de un Sprites externos

Esta parte es igual que A21 luego no lo repetimos

B22 Importación de Sprites externos

Vamos a mblock e IMPORTAMOS el fichero que hemos exportado
echidna-helicoptero3.jpg

Nos importa con sus disfraces Y SU CÓDIGO

Nos queda pues esta colección de objetos

echidna-helicoptero9.jpg

B3 Solución a la muerte del helicóptero

Vamos a poner que si toca un edificio, “explota” (o sea, cambia el disfraz a explosión), además envía el mensaje “komunikat1” que vemos que el script del edificio lo necesita para esconderse una vez terminado el juego (debe de ser ruso el mensaje es del autor del objeto edificio) :

echidna-helicoptero13.jpg

El programa lo tienes aquí https://planet.mblock.cc/project/3230430

MEJORAS
Ya sé que colocando el helicóptero siempre arriba, siempre ganas!!
HAZ QUE SOLO SI TOCA BUILTING1 MUERE, PERO SI TOCA A BULDING2 QUE GANE UN PUNTO de esta manera ya no se gana poniendo el helicóptero arriba del todo

Detalles MAPEO
Posición X: La pantalla de mBlock tiene desde -240 hasta 240 y hemos visto que los márgenes de A2 del acelerómetro va desde 250 hasta 500 luego hacemos el cambio de escala con la HOJA DE CÁLCULO que comentamos anteriormente:

image-1648738671457.png

luego ya tenemos la fórmula para la posición X

E igualmente para la posición Y pero en este caso los márgenes de la pantalla van desde -180 a 180 luego:

image-1648738725542.png

Testeando un poco hemos subido m a 1.9 pues no llegaba arriba del todo

PUEDES CAMBIAR ESTOS VALORES TESTEANDO LOS MOVIMIENTOS DEL SPRITE