Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
FJNM (PrimoBOY)
Published

PrimoBOY

Arduboy inspired by the game "Donkey Kong Jr" from Game and Watch.

BeginnerFull instructions provided695

Things used in this project

Hardware components

Buzzer
Buzzer
In the download area there is an Excel-type file where you can find the BOM list of all the components to perform PrimoBOY
×1
Arduboy Compatible
Arduboy Compatible
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Soldering Tool Stand, for use with W100PG Irons
Soldering Tool Stand, for use with W100PG Irons
Multitool, Screwdriver
Multitool, Screwdriver

Story

Read more

Schematics

ZIP

ZIP file of the project to be used with the "EasyEDA" circuit design program

DIAGRAM

Circuit DIAGRAM in ".json" format used with the "EasyEDA" circuit design program

PCB

Circuit PCB in ".json" format used with "EasyEDA" circuit design program

Circuit diagram

Circuit diagram in jpg format

PCB

Circuit PCB in jpg format

Readme

Text file where it is explained how to see the schematics and PCB in the "EasyEDA" circuit design program

BOM

BOM file in EXCEL format where are all the components used in the PCB to be able to carry out the entire projec

GERBER

GERBER files for PCB realization

OVNI - ARDUBOY GAME (BY FJNM)

Compressed folder in zip format with all the files of the game "OVNI" made by me, to be compiled with the Arduino IDE program.

Code

"OVNI" GAME

Arduino
//FJNM
//04-04-2020
//JUEGO LLAMADO "OVNI"
//ARDUBOY - GAME AND WATCH - PrimoBOY


//ESTE JUEGO DE ARDUINO EST BASADO (ES UNA REINTERPRETACIN) EN EL JUEGO "FLYING SAUCER" DE LA 
//SERIE DE Q&Q LCD CARD GAME. SON JUEGOS TIPO "GAME AND "WATCH"
//LA EMPRESA QUE LOS REALIZ FUE "CITIZEN" EN JAPN
//LAS CARACTERISTICAS E INSTRUCCIONES DEL JUEGO ORIGINAL 
//FLYING SAUCER DE Q&Q LCD CARD GAME ESTN AL FINAL DEL PROGRAMA.


//FLYING SAUCER
//General:
//Fecha de lanzamiento: 

//Modelo Nr: 
//Acrnimo: Flying saucer.
//Clasificacin: DC3V 0.0002W
//Batera: bateras alcalinas de manganeso LR44 (o SR44) x 1
//Fabricado: Japn
//Vendido: Citizen
//Nr. de jugadores: 1
//Vidas: 3
//Modos: Juego A 
//Controles:  Botones izquierda y derecha. 
//Otros botones: Boton de Seleccin y Ataque.







//EL JUEGO "OVNI" REALIZADO PARA ARDUBOY - PrimoBOY TIENE
//LAS SIGUIENTES CARACTERSTICAS:

//COMO SE JUEGA:

//Introduccin:
//Nos encontramos en el planeta Marte. All se encuentran instaladas dos bases o estaciones espaciales: 
//nuestra estacin base y la estacin base aliengenas.
//En la actualidad la estacin base aliengena ha secuestrado a una de nuestras
//astronautas y la ha recluido en su estacin base. 
//Nuestra misin ser rescatar a nuestra astronauta y volver a nuestra estacin base.

//El juego tiene dos modos de juego: Juego A y Juego B (el Juego B, es igual que el A, pero es ms rpido 
//el movimiento de los enemigos)
//Inicialmente el juego siempre comienza por el juego A.



//El juego constar de 4 partes.

//En la parte nmero 1: 
//Nuestra misin es introducirnos en la estacin base aliengena y rescatar a nuestra astronauta. 
//Para ello utilizaremos nuestra nave espacial llamada "OVNI" la cual se desplazar por la superficie
//de Marte hasta llegar a la estacin base aliengena. Entraremos en su base y rescataremos a nuestra 
//astronauta. 
//Para poder realizar lo anterior, primero debemos atrapar o alcanzar el tren de aterrizaje de nuestra
//nave OVNI. Una vez realizado esto, podremos entrar en la base aliengena siempre que tengamos abierta
//la barrera o puerta que existe en la base aliengena.
//Cada vez que entremos en la estacin base enemiga conseguiremos 20 puntos.
 
//Durante nuestro viaje hasta la base aliengena aparern diferentes enemigos que intentarn destruir 
//nuestra nave "OVNI" y eliminar a nuestro piloto.
//En la parte 1 existen 4 tipos de enemigos:

//Enemigo 1: Se trata de un meteorito que aparece desde el lado izquierdo de la plantalla. 
//Conforme se va acercando hacia nosotros se va haciendo mas grande.

//Enemigo 2: La estacin base aliengenas disponen de un lanzadera de misiles situada en el suelo que lanzar misiles
//para intentar destruirnos. Conforme se va acercando el misil hacia nosotros se va haciendo mas grande. 

//Enemigo 3: Los aliengenas disponen de una nave espacial enemiga nmero 2. Esta nave aparecer en el cielo y 
//nos enviar un proyectil para intentar destruirnos. 
//El proyectil conforme se va acercando hacia nosotros se va haciendo mas grande.

//Enemigo 4: Se trata de un meteorito que aparece desde el lado derecho de la plantalla. 
//Conforme se va acercando hacia nosotros se va haciendo mas grande.

//Cada vez que algn enemigo consiga alcanzarnos perderemos una nave "Ovni". Solo
//disponemos de 3 naves "Ovni" para completar la misin.

//Cuando obtengamos nuestro objetivo de entrar en la estacin base enemiga, la nave "OVNI" volver al punto de partida 
//y relizaremos el trayecto otra vez. Intentaremos sumar el mayor nmero de puntos posibles. Si conseguimos llegar a 
//los 200 puntos, obtendremos una nave "OVNI" ms que se sumar al nmero que tengamos, el cul nunca podr ser mayor de 3.
//Tambin una vez alcanzados estos 200 puntos, podremos alcanzar ms puntos si conseguimos algn premio jugando al 
//casino. 

//Cuando terminemos de jugar al "Casino" el juego pasar a la parte 2. 



//En la parte nmero 2: 
//Nuestra misin es regresar a nuestra estacin base con la astronauta rescatada.
//Para ello saldremos de la base aliengena, siempre que la barrera o puerta de la base este abierta y deberemos 
//bombardear una nave espacial enemiga nmero 1 que se encuetra en la superficie de Marte. Para ello nos situaremos
//encima de ella y pulsaremos el boton A para lanzar la bomba. Cuando la bomba impacte en la nave enemiga esta 
//desaparecer y al mismo tiempo aparecer una plataforma en nuestra estacin base que ser necesaria para poder
//entrar en nuestra base y conseguir as estar a salvo. 
//Para poder entrar en nuestra estacin base ser necesario estar colocado encima de la plataforma y adems exista
//el tren de aterrizaje de nuestra nave "OVNI" dentro de nuestra base espacial. Este tren de aterrizaje
//aparecer y desaparecer dentro de nuestra base. Cuando el tren de aterrizaje no se encuentre dentro de la base
//no podremos entrar nuestra nave OVNI dentro. Entonces habremos conseguido nuestro objetivo.

//Si nos encontramos en la plataforma para entrar y por algn motivo nos salimos de la plataforma, ser necesario
//volver ha bombardear la nave enemiga nmero 1 para que vuelva aparecer la plataforma de acceso a nuestra estacin base.

//Cada vez que entremos en nuestra estacin base conseguiremos 20 puntos.

//Durante nuestro viaje de regreso hasta nuestra base aparern diferentes enemigos que intentarn destruir 
//nuestra nave "OVNI" y eliminar a nuestro piloto. 

//En esta parte nmero 2 existirn 4 tipos de enemigos. Sern los mismos enemigos que en la parte 1: Enemigo 1,
//Enemigo 2, Enemigo 3 y Enemigo 4.

//Cada vez que algn enemigo consiga alcanzarnos perderemos una nave "Ovni". 

//Cuando obtengamos nuestro objetivo de entrar en nuestra estacin base, la nave "OVNI" volver al punto de partida de la parte 2 
//(estacin base enemiga) y relizaremos el trayecto otra vez. Intentaremos sumar el mayor nmero de puntos posibles. Si conseguimos llegar a 
//los 200 puntos ms, obtendremos una nave "OVNI" ms que se sumar al nmero que tengamos, el cul nunca podr ser mayor de 3.
//Tambin una vez alcanzados estos 200 puntos ms, podremos alcanzar ms puntos si conseguimos algn premio jugando al 
//casino.  

//Cuando terminemos de jugar al "Casino" el juego pasar a la parte 3. 




//En la parte 3: 
//La parte 3 es exactamente igual que la parte 1 pero con un mayor nmero de enemigos.
//En esta parte aparecern los enemigos: Enemigo 1, Enemigo 2, Enemigo 3, Enemigo 4 y adems se sumarn 2 enemigos ms:

//Enemigo 5: Los aliengenas disponen de una nave espacial enemiga nmero 3 que aparecer en el cielo y se desplazar de 
//derecha a izquierda de la pantalla y nos lanzar un rayo para intentar destruirnos el tren de aterrizaje que hemos alcanzado con 
//nuestra nave OVNI. Cuando todava no tenemos o no hemos atrapado el tren de aterrizaje y el rayo de la nave enemiga nmero 3
//nos impacta no ocurrir nada. Si por el contrario, hemos alcanzado el tren de aterrizaje y el rayo nos alcanza el tren de
//aterrizaje se destruira y tendremos que volver a intentar alzancar otro tren de aterrizaje. En ningn momento el enemigo 5
//nos destruir la nave OVNI y no perderemos una vida.


//Enemigo 6: La estacin base aliengenas disponen tambin de una torre de rayos ultrasnicos situada en el suelo de Marte que lanzar seales o 
//rayos ultrasnicos para intentar destruirnos. Conforme se va acercando el rayo ultrasnico hacia nosotros se va haciendo mas grande. 


//Cada vez que entremos en la estacin base enemiga conseguiremos 20 puntos. 

//Si conseguimos llegar a los 200 puntos ms, obtendremos una nave "OVNI" ms que se sumar al nmero que tengamos, el 
//cul nunca podr ser mayor de 3.
//Tambin una vez alcanzados estos 200 puntos ms, podremos alcanzar ms puntos si conseguimos algn premio jugando al 
//casino.  

//Cuando terminemos de jugar al "Casino" el juego pasar a la parte 4. 



//En la parte 4: 
//La parte 4 es exactamente igual que la parte 2 pero con un mayor nmero de enemigos.
//En esta parte aparecern los enemigos: Enemigo 1, Enemigo 2, Enemigo 3, Enemigo 4 y adems se sumarn 2 enemigos ms:

//Enemigo 5: Los aliengenas disponen de una nave espacial enemiga nmero 3 que aparecer en el cielo y se desplazar de 
//derecha a izquierda de la pantalla y nos lanzar un rayo para intentar robarnos de nuestra nave OVNI a la astronauta
//que habiamos salvado. Cuando el rayo impacta en nuestra nave OVNI nuestra astronauta desparecer y volver a estar
//secuestrada en la estacin base enemiga. En este momento, deberemos volver a entrar la base enemiga y rescatar de nuevo
//a la astronauta. Una vez que la hallamos rescatado volveremos a salir para regresar a nuestra estacin base.
//En ningn momento el enemigo 5 nos destruir la nave OVNI y no perderemos una vida.


//Enemigo 6: La estacin base aliengenas disponen tambin de una torre de rayos ultrasnicos situada en el suelo de Marte que lanzar seales o 
//rayos ultrasnicos para intentar destruirnos. Conforme se va acercando el rayo ultrasnico hacia nosotros se va haciendo mas grande. 


//Cada vez que entremos en la estacin base enemiga conseguiremos 20 puntos. 

//Si conseguimos llegar a los 200 puntos ms, obtendremos una nave "OVNI" ms que se sumar al nmero que tengamos, el 
//cul nunca podr ser mayor de 3.
//Tambin una vez alcanzados estos 200 puntos ms, podremos alcanzar ms puntos si conseguimos algn premio jugando al 
//casino.  

//Cuando terminemos de jugar al "Casino" el juego pasar a la parte 1. 


//IMPORTANTE:

//Existen tres tipos de sonido que emite el juego:

//beepsound     Sonido de movimiento de los enemigos
//beepmove      Sonido para indicar que el jugador se ha movido
//beepdie       Sonido para indicar que el jugador ha perdido una vida



//El puntaje mximo es de 9999 y cuando el puntaje alcanza los 300 puntos y los 600 puntos 
//todas las vidas perdidas se borrarn (volveremos a tener 3 vidas)


//ESTABLECER EL JUEGO EN MODO PAUSE

//Si durante el juego pulsamos el boton B. Pararemos el juego y entraremos en una pantalla donde ser posible
//eliminar o no el sonido en el juego.

//Si queremos eliminar el sonido del juego, pulsaremos boton izquierdo y el sonido se eliminar.
//Si queremos volver a tener sonido pulsaremos el boton derecho. 

//Tambin ser posible desplazarnos por el men hacia abajo o arriba y seleccionar el modo de juego que queramos.
//Podremos elegir el modo de Juego A o modo de Juego B.
//El modo de juego B ser igual que el A, pero la velocidad de los enemigos ser ms rpida.

//Si queremos eliminar cambiar el modo de juego, pulsaremos boton izquierdo y seleccionaremos el modo de Juego B.
//Si queremos volver a tener el modo de juego A pulsaremos el boton derecho. 

//Existir un truco secreto cuando nos encontremos en la pantalla de "pause". Si pulsamos al mismo tiempo el botn
//A y B entonces pondremos las vidas del juego a cero. Volveremos a tener 3 vidas para poder ejcutar la misin.

//Para volver al juego pulsaremos de nuestro el boton B y el juego seguir donde lo habamos dejado.


//ESTABLECER EL JUEGO EN MODO CASINO

//Cuando llegamos a los puntos requeridos en las diferentes partes, aparece el juego del "casino"
//En este juego aparecern tres dgitos. Los dgitos solo tienen los nmeros 1,3,5 y 7.
//Estos tres dgitos empezarn a girar a una velocidad determinada. El juego consistir en pulsar
//el boton A de tal manera que empecemos a parar los dgitos uno a uno empezando desde la izquierda.
//Una vez que se han parado en una combinacin se obtendrn premios o no. Estos premios sern puntos.

//Los premios sern para las siguientes combinaciones:
//          combinacin                      puntos
//               111                          40
//               333                          80
//               555                          40
//               777                          80

//Cualquier otra combinacin que no sean las anteriores no conseguiremos ningun puntos extra.

//Cuando se ha terminado el juego de "Casino", pasados un tiempo (1 o 2 segundos) el juego automticamente
//seguir comenzando por la siguiente parte. Antes de comenzar la siguiente parte del juego, se habrn
//sumado automticamente los puntos conseguidos en el juego "Casino"


///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//
//JUEGO
//
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////
//LIBRERIAS INCLUIDAS
//////////////////////////////////////////////////////////////////////////

#include <Arduboy2.h>              //Liberia Arduboy2.h
#include <ArduboyTones.h>          //Liberia para el audio "ArduboyTones.h"
//#include <ArduboyPlaytune.h>     //Liberia "ArduboyPlaytune.h" no la utilizamos. Hasta que la investiguemos mejor.


Arduboy2 arduboy;
ArduboyTones sound(arduboy.audio.enabled);
//ArduboyPlaytune tunes(arduboy.audio.enabled); //Se utilizaria si utilizaramos la libreria ArduboyPlaytune.h
                                                //Esta libreria de sonidos tengo que investigarla mejor.


void pausa();
void casinos();
void naveenemiga1();                   //Subrutina para colocar la nave 1 enemiga.
void aterrizajequieto();               //Subrutina que se ejecuta en la parte = 0 donde el tren 
                                       //de ateerrizaje se queda en la estacin base del OVNI cuando sale
void  barrera();                       //Subrutina de la barrera en la estacin base aliengena enemiga
void  aterrizajeparte1();              //Subrutina del tren de aterraje para poder entrar 
                                       //en la guarida del ovni cuando estamos en la plataforma parte 1 y 3
                                       // y ser necesario cojerla o ensamblarla al ovni para poder entrar en la estacin base enemiga
void  plataformas();                   //Subrutina para visualizar la plataforma de la parte del juego 1 y 3
void  ganar();                         //Subrutina para testear cuando se llega al objetivo en cada parte 
void  puntuacionA();                   //Subrutina de puntuacin 
void  enemigos1();
void  enemigos2();
void  enemigos3();
void  enemigos4();
void  enemigos5();
void  enemigos6();
void  aterrizajes();
void  lanzabombas();                    //visualiza el lanzamiento de la bomba por parte del ovni
void  plataforma1();  
void  ovni();                           //visualiza al jugador en la pantalla
void  chico();
void  chica();
void  vidass();                         //Subrutina de nmero de vidas del jugador
void  check();                          //Subrutina de chequeo 
void  controldejuego();  
void  gameover();
void  siguiente();



/////////////////////
//VARIABLES DEL JUEGO
/////////////////////


//Variable de estado del juego

int gamestate = 0;      //variable de estado del juego
                        //gamestate= 0    PANTALLA DE TITULO DEL JUEGO
                        //gamestate= 1    PANTALLA INICIO DE JUEGO
                        //gamestate= 2    PANTALLA DE FIN DE JUEGO
                        //gamestate= 3    PANTALLA DE CONTINUACIN DEL JUEGO
                        //gamestate= 4    PANTALLA DE CASINO
                      
                      
int gamestate1 = 0;      //variable que solo se utiliza en el  estado del juego 0 es decir: gamestate = 0
                         //gamestate1= 0    Significa que no hemos pulsado "pause" en el estado gamestate = 0
                         //gamestate1= 1    Significa que hemos pulsado "pause" en el estado gamestate = 0



//Variables de estado de los buffer de pulsadores

int buffera = 0;
int bufferb = 0;
int bufferup = 0;
int bufferdown = 0;
int bufferleft = 0;
int bufferright = 0;
int abuffer = 0;
int bbuffer = 0;


//Variables del "Casino"

int casino = 0;           //casino = 0    casino off
                          //casino = 1    casino on
                         
int paron1 = 0;           //paron1= 0    No paro el dgito de unidades
                          //paron1 = 1   Paro el dgito de unidades
                        
int paron2 = 0;           //paron2= 0    No paro el dgito de decenas
                          //paron2 = 1   Paro el dgito de decenas
                          
int paron3 = 0;           //paron2= 0    No paro el dgito de centenas
                          //paron2 = 1   Paro el dgito de centenas 
                          
int paron4 = 0;           //paron1= 0    No paro el dgito de unidades de millar
                          //paron1 = 1   Paro el dgito de unidades  de millar                          
                          
                         
int cambian1 = 0;         //cambian1 = 0    El dgito de unidades del casino no aparece
                          //cambian1 = 1    El dgito de unidades del casino sera 1
                          //cambian1 = 2    El dgito de unidades del casino sera 3
                          //cambian1 = 3    El dgito de unidades del casino sera 5
                          //cambian1 = 4    El dgito de unidades del casino sera 7
                          
                          
                        
int cambian2 = 0;         //cambian2 = 0    El dgito de decenas del casino no aparece
                          //cambian2 = 1    El dgito de decenas del casino sera 1
                          //cambian2 = 2    El dgito de decenas del casino sera 3
                          //cambian3 = 3    El dgito de decenas del casino sera 5
                          //cambian4 = 4    El dgito de decenas del casino sera 7
                           
                          
int cambian3 = 0;         //cambian2 = 0   El dgito de decenas del casino no aparece
                          //cambian2 = 1    El dgito de centenas del casino sera 1
                          //cambian2 = 2    El dgito de centenas del casino sera 3
                          //cambian3 = 3    El dgito de centenas del casino sera 5
                          //cambian4 = 4    El dgito de centenas del casino sera 7
                         
                                               
//Variables del modo sonido del juego

int sonido = 1;          //sonido = 0    Sonido off
                         //sonido = 1    sonido on
                         
                         

//Variables del sonido del juego casino
//Simplemente es una variable de interruptor para que el programa no pase
//dos veces por el mismo sitio


int sonidocasino = 0;           //sonidocasino = 0    
                                //sonidocasino = 1 
                                //sonidocasino = 2 
                                //sonidocasino = 3 


//Variables del modo pause del juego

int pause = 0;           //pause = 0    El juego se ejecuta normalmente 
                         //pause = 1    El juego entra en modo pausa. Podremos varias si queremos sonido o no.

int controlpause = 0;    //controlpause = 0    Pulsando UP  DOWN podemos subir y bajar el selector ">" para poder
                         //controlpause = 1    cambiar las diferentes opciones. Se utilizar tamben LEFT y RIGHT


int modosonido  = 0;     //La variable modo tendr el siguiente mensaje inicialmente dentro del modo "pause". Indicandonos  Si el juego tiene sonido o no. 
                         //modosonido = 0   Aparecer en la pantalla "SONIDO ON"
                         //modosonido = 1   Aparecer en la pantalla "SONIDO OFF"


int modosonido1 = 0;     //La variable modo1 servir para cambiar el sonido (ON  OFF) dentro del modo "pause"
                         //modosonido1 = 0   Aparecer en la pantalla "Left: Sonido Off". Indicndonos que tenemos que hacer para cambiar si queremos sonido o no.
                         //modosonido1 = 1   Aparecer en la pantalla "Right: Sonido On". Indicndonos que tenemos que hacer para cambiar si queremos sonido o no.



int modo = 0;            //La variable modo tendr el siguiente mensaje inicialmente dentro del modo "pause". Indicandonos que estamos en el modo de juego A. 
                         //modo = 0   Aparecer en la pantalla "Modo A" 
                         //modo = 1   Aparecer en la pantalla "Modo B"



int modo1 = 0;            //La variable modo1 servir para cambiar el modo de juego (A  B) dentro del modo "pause"
                          //modo1 = 0  Aparecer en la pantalla "Left: Modo B"   Indicndonos que tenemos que hacer para cambiar el modo de juego
                          //modo1 = 1  Aparecer en la pantalla "Right: Modo B"  Indicndonos que tenemos que hacer para cambiar el modo de juego           


//Existen cuatro partes dentro del juego  patrones

int partes = 0;          //partes = 0    La nave ovni se desplaza hacia la derecha:    Patrn 1
                         //partes = 1    La nave ovni se desplaza hacia la izquierda:  Patrn 2 
                         //partes = 2    La nave ovni se desplaza hacia la derecha:    Patrn 3  (aparecen nuevos enemigos)
                         //partes = 3    La nave ovni se desplaza hacia la izquierda:  Patrn 4  (aparecen nuevos enemigos)


//Variables de posicin de jugador y enemigos

//Variable: del jugador protagonista. En este caso, tenemos como jugador protagonista una nave (OVNI).
//La nave protagonista que nosotros movemos tiene seis posiciones para moverse dentro de la pantalla pero solo 
//utiliza un nico Sprite.

int navex = 1;           //variable posicin del jugador o nave ovni protagonista del juego
                         //navex = 0 La nave ovni no aparece en la pantalla.
                         //navex = 1 Posicin 1 de la nave ovni(sprite nave14x8)
                         //navex = 2 Posicin 2 de la nave ovni(sprite nave14x8)
                         //navex = 3 Posicin 3 de la nave ovni(sprite nave14x8)
                         //navex = 4 Posicin 4 de la nave ovni(sprite nave14x8)
                         //navex = 5 Posicin 5 de la nave ovni(sprite nave14x8) 
                       

int navexensamb = 0;     //variable posicin del jugador o nave ovni protagonista del juego
                         //cuando esta ensamblada. La nave ovni ha atrapado el tren de aterrizaje.
                         // navexensamb = 0 La nave ovni ensamblada con el tren de aterrizaje ovni no aparece en la pantalla.
                         // navexensamb = 1 Posicin 1 de la nave ovni(sprite navexensamb14x9)
                         // navexensamb = 2 Posicin 2 de la nave ovni(sprite navexensamb14x9)
                         // navexensamb = 3 Posicin 3 de la nave ovni(sprite navexensamb14x9)
                         // navexensamb = 4 Posicin 4 de la nave ovni(sprite navexensamb14x9)
                         // navexensamb = 5 Posicin 5 de la nave ovni(sprite navexensamb14x9) 



int ensamblaje = 0;      //variable con dos valores: 
                         //ensamblaje = 0  No hay ensamblaje de la nave y el tren de aterrizaje 
                         //ensamblaje = 1  Si hay ensamblaje de la nave y el tren de aterrizaje


//Variable: robochica (esta variable se activa cuando nos roban a la chica del ovni en la parte 3 
//del juego al habernos atacado el enemigo 5. Tendremos entonces que volver a la guarida enemiga y recuperar
//a la chica para luego volver a salir de la estacin base enemiga aliengena y volver a la estacin base
//de la nave OVNI)

int robochica = 0;       //variable posicin de robochica
                         //robochica = 0   La chica astronauta la hemos rescatado de la estacin base enemiga y va subida el el OVNI
                         //robochica = 1   Nos ha robado a la chica del ovni en la parte 3 del juego
                         


//Variable: tren de aterrizaje (tren de aterrizaje que tiene que coger la nave protagonista del juego (Ovni) para
//poder aterrizar en la guarida del enemigo para poder salvar a la chica raptada.
//El tren de aterrizaje tiene cuatro posiciones para moverse dentro de la pantalla pero solo 
//utiliza un nico Sprite.

int aterrizaje = 0;     //variable posicin del tren de aterrizaje de la nave protagonista
                        //aterrizaje = 0 El tren de aterrizaje no aparece en la pantalla.
                        //aterrizaje = 1 Posicin 1 del tren de aterrizaje(sprite aterrizaje)
                        //aterrizaje = 2 Posicin 2 del tren de aterrizaje(sprite aterrizaje)
                        //aterrizaje = 3 Posicin 3 del tren de aterrizaje(sprite aterrizaje)
                        //aterrizaje = 4 Posicin 4 del tren de aterrizaje(sprite aterrizaje)

int Xaterrizaje = 0;    //variable con dos valores: 
                        //Xaterrizaje = 0  El tren de aterrizaje no esta en modo activo
                        //Xaterrizaje = 1  El tren de aterrizaje si esta en modo activo


int aterrizajeatrapado = 0; //variable con dos valores: 
                            //aterrizajeatrapado = 0  El tren de aterrizaje no esta atrapado por la nave ovni.
                            //aterrizajeatrapado = 1  El tren de aterrizaje si esta atrapado por la nave ovni.


//Variable: tren de aterrizaje que aparecer y desaparecer en la estacin base de la nave ovni protagonista.
//Esto ocurrir en la partes = 1 y 3

int aterrizaje1 = 0;    //variable posicin del tren de aterrizaje1
                        //aterrizaje1 = 0 Posicin 1 de la aterrizaje1 (no hay aterrizaje1)    (aterrizajenocasa6x8) 
                        //aterrizaje1 = 1 Posicin 2 de la aterrizaje1 (si hay aterrizaje1)    (aterrizajecasa6x8)
                        //aterrizaje1 = 2 Posicin 1 de la aterrizaje1 (no hay aterrizaje1)    (aterrizajenocasa6x8) 
                        

int Xaterrizaje1 = 0;   //variable con dos valores: 
                        //Xaterrizaje1 = 0  El tren de aterrizaje1 no esta en modo activo
                        //Xaterrizaje1 = 1  El tren de aterrizaje1 si esta en modo activo


//Variable:  Nave enemiga 1 (es la nave que est en el suelo y que habr que bombardear 
//desde el ovni para poder obtener la plataforma para poder entrar en la estacin base del 
//ovni). Esto ocurrir en la partes = 1 y 3

int nave1enemiga = 0;    //variable posicin del tren de aterrizaje1
                         //nave1enemiga = 0 Posicin 1 de la nave1enemiga. Nave visible    (sprite nave11enemiga17x8)
                         //nave1enemiga = 1 Posicin 2 de la nave1enemiga. Nave no visible (sprite nave12enemiga17x8 )
                         //no hay nave porque ha sido bombardeada por la nave protagonista


//Variable: enemigo 1 (ataque de enemigo 1: misiles que aparecen contra la nave en la parte
//izquierda de la pantalla. El enemigo 1 solo tiene tres posiciones dentro de la pantalla de manera
//que la primera posicin el enemigo es el ms pequeo y a medida que se va acercando su dimensin
//aumenta. El la posicin 3 su tamao ser el mayor 

int enemigo1 = 0;   //variable posicin del enemigo1
                    //enemigo1 = 0 El enemigo1 no aparecer en la pantalla
                    //enemigo1 = 1 Posicin 1 del enemigo1(sprite ataque11enemigo3x8)
                    //enemigo1=  2 Posicin 2 del enemigo1(sprite ataque12enemigo5x8)
                    //enemigo1 = 3 Posicin 3 del enemigo1(sprite ataque13enemigo7x8)
                    
int Xenemigo1 = 0;  //variable con dos valores: 
                    //Xenemigo1 = 0  El enemigo1 no esta en modo activo
                    //Xenemigo1 = 1  El enemigo1 si esta en modo activo
                    


//Variable: enemigo 2(ataque de enemigo 2: misiles que enva la lanzadera desde el suelo. 
//El enemigo 2 solo tiene tres posiciones dentro de la pantalla).
//La lanzadera lanza el misil, de manera que va aumentando su dimensin a medida que va
//pasando por las siguientes posicines. 
//El la posicin 3 su tamao ser el mayor 


int enemigo2 = 0;   //variable posicin de enemigo2
                    //enemigo2 = 0 El enemigo2 no aparecer en la pantalla
                    //enemigo2 = 1 Posicin 1 del enemigo2(sprite ataque21enemigo2x8)
                    //enemigo2 = 2 Posicin 2 del enemigo2(sprite ataque22enemigo3x8)
                    //enemigo2 = 3 Posicin 3 del enemigo2(sprite ataque23enemigo7x8)

int Xenemigo2 = 0;  //variable con dos valores: 
                    //Xenemigo1 = 0  El enemigo2 no esta en modo activo
                    //Xenemigo1 = 1  El enemigo2 si esta en modo activo
                    

//Variable: enemigo 3 (ataque de enemigo 3: misiles que enva la nave enemiga 2 desde el cielo. Primero aparece
//la nave enemiga y despus manda los misiles. El enemigo 3 solo tiene cuatro posiciones dentro de la 
//pantalla. Primero aparece la nave enemiga 2 (posicin 1) y despus aparece el misil lanzado, de manera 
//que va aumentando su dimensin a medida que va pasando por las siguientes posicines. 
//El la posicin 4 su tamao ser el mayor 


int enemigo3 = 0;   //variable posicin de enemigo3
                    //enemigo3 = 0 El enemigo3 no aparecer en la pantalla
                    //enemigo3 = 1 Posicin 1 del enemigo3(sprite nave2enemiga13x8)
                    //enemigo3 = 2 Posicin 2 del enemigo3(sprite ataque31enemigo7x8)
                    //enemigo3 = 3 Posicin 3 del enemigo3(sprite ataque32enemigo4x8)
                    //enemigo3 = 4 Posicin 4 del enemigo3(sprite ataque33enemigo5x8)

int Xenemigo3 = 0;  //variable con dos valores: 
                    //Xenemigo3 = 0  El enemigo3 no esta en modo activo
                    //Xenemigo3 = 1  El enemigo3 si esta en modo activo
                    

//Variable: enemigo 4 (ataque de enemigo 4: misiles que aparecen contra la nave en la parte
//derecha de la pantalla). El enemigo 4 solo tiene tres posiciones dentro de la pantalla de manera
//que la primera posicin el enemigo es el ms pequeo y a medida que se va acercando su dimensin
//aumenta. El la posicin 3 su tamao ser el mayor. 

  

int enemigo4 = 0;   //variable posicin del enemigo4
                    //enemigo4 = 0 El enemigo4 no aparecer en la pantalla
                    //enemigo4 = 1 Posicin 1 del enemigo4(sprite ataque11enemigo5x8)
                    //enemigo4 = 2 Posicin 2 del enemigo4(sprite ataque12enemigo7x8)
                    //enemigo4 = 3 Posicin 3 del enemigo4(sprite ataque13enemigo9x8)
                    

int Xenemigo4 = 0;  //variable con dos valores: 
                    //Xenemigo4 = 0  El enemigo4 no esta en modo activo
                    //Xenemigo4 = 1  El enemigo4 si esta en modo activo
                    


//Variable: enemigo 5 (ataque de enemigo 5: rayos que enva la nave enemiga 3 (que atraviesa la pantalla 
//desde la parte derecha a la izquierda) desde el cielo. 
//De las cinco posiciones que tiene solo lanza el rayo en una de las posiciones.
//Esto ocurrir en la partes = 2 y 3
//Realmente la nave enemiga 5 solo tendr 3 sprites.


int enemigo5 = 0;   //variable posicin de enemigo5
                    //enemigo5 = 0 La nave enemiga5 no aparece en la pantalla
                    //enemigo5 = 1 Posicin 1 del enemigo5 (sprite nave31enemiga7x8)
                    //enemigo5 = 2 Posicin 2 del enemigo5 (sprite nave32enemiga10x8)
                    //enemigo5 = 3 Posicin 3 del enemigo5 (sprite nave33enemiga13x16)
                    //enemigo5 = 4 Posicin 4 del enemigo5 (sprite nave33enemiga13x16)
                    //enemigo5 = 5 Posicin 5 del enemigo5 (sprite nave32enemiga10x8)

int Xenemigo5 = 0;  //variable con dos valores: 
                    //Xenemigo5 = 0  El enemigo5 no esta en modo activo
                    //Xenemigo5 = 1  El enemigo5 si esta en modo activo

int enemigo5parte23 = 0;  //variable con dos valores: 
                          //enemigo5parte23 = 0  El enemigo5 no aparece en la pantalla partes 0 y 1
                          //enemigo5parte23 = 1  El enemigo5 si aparece en la pantalla partes 2 y 3


//Variable: enemigo 6 (ataque de enemigo 6: seales ultrasnicas que enva la torre de ultrasonidos desde el suelo. La torre de 
//ultrasonidos ya esta situada en el suelo. Dicha torre lanzar los rayos ultrasnicos para derribar la nave 
//protagonista. El enemigo 6 solo tiene tres posiciones dentro de la pantalla.
//En la primera posicin la seal ultrasnica es la ms pequea y alejada del objetivo y a medida que va 
//pasando de posicin va acercndose y aumentando su dimensin.
//El la posicin 3 su tamao ser el mayor 
//Realmente la nave enemiga 6 solo tendr 3 sprites.
//Esto ocurrir en la partes = 2 y 3



int enemigo6 = 0;   //variable posicin del enemigo6
                    //enemigo6 = 0 La nave enemiga6 no aparece en la pantalla
                    //enemigo6 = 1 Posicin 1 del enemigo6 (sprite rayo1ultrasonido2x8)
                    //enemigo6 = 2 Posicin 2 del enemigo6 (sprite rayo2ultrasonido5x8)
                    //enemigo6 = 3 Posicin 3 del enemigo6 (sprite rayo3ultrasonido8x8)

int Xenemigo6 = 0;  //variable con dos valores: 
                    //Xenemigo6 = 0  El enemigo6 no esta en modo activo
                    //Xenemigo6 = 1  El enemigo6 si esta en modo activo

int enemigo6parte23 = 0;  //variable con dos valores: 
                         //enemigo6parte23 = 0  El enemigo6 no aparece en la pantalla partes 0 y 1
                         //enemigo6parte23 = 1  El enemigo6 si aparece en la pantalla partes 2 y 3


//Variable: bomba (Bombas lanzadas a la nave enemiga  por la nave protagonista para que se coloque la plataformma
//para poder entrar la nave ovni en su estacin base.
//Esto ocurrir en la partes = 1 y 3


int bomba = 0;      //variable posicin del bomba
                    //bomba = 0 La bomba no aparece en la pantalla
                    //bomba = 1 Posicin 1 de la bomba(sprite bomba1nave2x8)
                    //bomba = 2 Posicin 2 de la bomba(sprite bomba2nave3x8)
                    //bomba = 3 Posicin 3 de la bomba(sprite bomba3nave4x8)

int Xbomba = 0;     //variable con dos valores: 
                    //Xbomba = 0  la bomba no esta en modo activo
                    //Xbomba = 1  la bomba si esta en modo activo



//Variable: plataforma (Es la plataforma necesaria para entrar en la estacin base de la nave ovni).
//Para que aparezca la plataforma es necesario que bombardeemos la nave enemiga 1 que se encuentra
//en el suelo. Si nos salimos de la plataforma esta desaparecer y ser necesario volver a bombardear la 
//nave enemiga 1 para que vuelva aparecer la plataforma.
//Esto ocurrir en la partes = 1 y 3

int plataforma = 0;      //variable posicion de la plataforma
                         //plataforma = 0 Posicin 1 de la plataforma (sprite plataforma18x16)
                         //plataforma = 1 Posicin 2 de la plataforma (sprite plataforma18x16)
                         //hay plataforma en la posicin 2



//Variable: barrera1 (Barrera que hay en la estacin base enemiga aliengena).
//Esta barrera si esta activa no dejar que la nave ovni entre y rescate a la chica secuestrada.

int barrera1 =   1;  //variable posicin de la barrera                    
                     //barrera = 1 Posicin 1 de la barrera(no hay barrera). La nave ovni puede entrar.
                     //barrera = 2 Posicin 2 de la barrera(sprite barrera4x8)
                     //barrera = 3 Posicin 1 de la barrera(no hay barrera). La nave ovni puede entrar.

int Xbarrera1 = 0;  //variable con dos valores: 
                    //Xbarrera1 = 0  la barrera no esta en modo activo
                    //Xbarrera1 = 1  la barrera si esta en modo activo

                  
//Variable: vidas (Son las vidas que le quedan al jugador. Son las vidas que tiene el piloto de la nave ovni). 

int vidas = 0;   //variable de numero de vidas que pierde el jugador
                 //vidas = 0   Tenemos 3 vidas todava. No hemos cometido ningn error
                 //vidas = 1   Tenemos 2 vidas todava. Posicin 2 (sprite navevida11x8)
                 //vidas = 2   Tenemos 1 vidas todava. Posicin 3 (sprite navevida11x8)
                 //vidas = 3   "Gameover" partidas terminada.


int vidascero = 0;   //variable con dos valores:  
                     //vidascero = 0   No se han puesto las vidas a cero cuando llegamos a una puntuacin
                     //vidascero = 1   Se han puesto las vidas a cero cuando llegamos a una puntuacin
                     //Es un simple interruptor para que no pase por el mismo sitio una vez que ya
                     //hemos pasado y activado las vidas a cero



//Variables de puntuacin del juego. 

int sc = 0;    //variable de valor puntuacin del juego
int hs = 0;    //variable de valor record de puntuacin del juego

int puntuacioninicial = 0;       //variable de valor puntuacin del juego
int puntuacionfinal = 0;         //variable de valor puntuacin del juego
int puntuaciondiferencia = 0;    //variable de valor puntuacin del juego. (puntuaciondiferencia = puntuacionfinal - puntuacioninicial)
int puntuaciondiferencia1 = 0;   //variable de valor puntuacin del juego. Se utiliza para dejar las vidas a cero cuando se alcazan en la punticin 300 puntos mas (por ejemplo)




//Variable de los dgitos de puntuacin del juego.

//variables dgitos del marcador
int n1 = 0; 
int n2 = 0; 
int n3 = 0; 
int n4 = 0;

//variables para guardar los dgitos del marcador antes de entrar en el casino      
int n11 = 0; 
int n22 = 0; 
int n33 = 0; 
int n44 = 0;   



int TT = 0;          //variable de tiempo total (velocidad de juego)
int TSEG = 0;        //varible de tiempo. Cuando TT=100 entonces TSEG=1

int T11 = 0;         //variable de tiempo asignada al movimiento del enemigo
int speed11 = 75;    //variable de tiempo (velocidad del enemigo 1)

int T12 = 0;         //variable de tiempo asignada al movimiento del enemigo
int speed12 = 75;    //variable de tiempo (velocidad del enemigo 2)

int T13 = 0;         //variable de tiempo asignada al movimiento del enemigo
int speed13 = 75;    //variable de tiempo (velocidad del enemigo 3)
 
int T14 = 0;         //variable de tiempo asignada al movimiento del enemigo
int speed14 = 75;    //variable de tiempo (velocidad del enemigo 4)

int T19 = 0;         //variable de tiempo asignada al movimiento del enemigo
int speed19 = 75;    //variable de tiempo (velocidad del enemigo 5)

int T20 = 0;         //variable de tiempo asignada al movimiento del enemigo
int speed20 = 75;    //variable de tiempo (velocidad del enemigo 6)

int T15 = 0;         //variable de tiempo asignada al movimiento de la bomba lanzada por el ovni
int speed15 = 100;   //variable de tiempo (velocidad de la bomba)

int T16 = 0;         //variable de tiempo asignada al movimiento del tren de aterrizaje que tiene que alzanzar el ovni
int speed16 = 75;    //variable de tiempo (velocidad del tren de aterrizaje)

int T17 = 0;         //variable de tiempo asignada a la barrera de la estacin base enemiga eliengena
int speed17 = 75;    //variable de tiempo (velocidad de la barrera de la guarida)

int T18 = 0;         //variable de tiempo asignada al tren de aterrizaje de la estacin base del ovni
int speed18 = 75;    //variable de tiempo (velocidad del tren de aterrizaje de la estacin base del ovni)

int T21 = 0;         //variable de tiempo asignada al tiempo que estamos sin mover la nave OVNI
int speed21 = 375;   //variable de tiempo (tiempo sin mover la nave OVNI)
int sehamovido = 0;  //variable con dos valores: 
                     //sehamovido = 0  la nave no se ha movido porque no ha pasado pasa el tiempo speed21
                     //sehamovido = 1  la nave si se ha movido porque si ha pasado pasa el tiempo speed21
 


int T22 = 0;         //variable de tiempo para estar la nave ovni en la estacin base de destino (cuando estamos en cuaquiera de las partes 0, 1,2 y 3 del juego)
                     //para luego desaparecer y aparecer en la estacin base del OVNI otra vez para
                     //volver ha empezar
int atttt = 3;       //tiempo de estado en la estacin base de destino (cuando estamos en cuaquiera de las partes 0, 1,2 y 3 del juego) para luego desaparecer 
                        



int T4 = 0;          //variable de tiempo para colisin de ovni y los enemigos
int att = 10;        //Tiempo de colisin o choque enemigos y jugador



//Esto est en pruebas. No se ha implementado.
//int T23 = 0;         //variable de tiempo asignada para las pulsaciones de botones
//int speed23 = 20;    //variable de tiempo (velocidad de pulsacin botones)




////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
//PARA LOS SPRITES UTILIZAREMOS EL PROGRAMA "ardu-imconvert.exe"
//Este programa tomar el dibujo del Sprite y lo convierte en
//un sistema matriz hexadecimal que entiende ARDUINO
////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////



//SPRITE DE LA PANTALLA DE PRESENTACIN DEL JUEGO
const unsigned char pantallapresentacion128x64 [] PROGMEM  =
{ 
// 128, 64
// 0
0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x10, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 
0x20, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x02, 
0x00, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x88, 
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 
0x80, 0x04, 0x10, 0x00, 0x00, 0x20, 0x00, 0x00, 
0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 
0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 
0x02, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x3e, 0x28, 0x10, 0x00, 0x48, 
0x30, 0x08, 0x00, 0x00, 0x3e, 0x0a, 0x02, 0x00, 
0x10, 0x20, 0x1e, 0x00, 0x3e, 0x04, 0x08, 0x3e, 
0x00, 0x3e, 0x04, 0x08, 0x04, 0x3e, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x20, 0x00, 0x02, 0x00, 0x00, 
0x80, 0x80, 0x80, 0x80, 0x84, 0x00, 0x00, 0x00, 
0x00, 0x81, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 
0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, 0x80, 
0x80, 0x80, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, 
0x02, 0x00, 0x00, 0x00, 0x02, 0x80, 0x80, 0x80, 
0x80, 0x80, 0x80, 0x00, 0x80, 0x88, 0x80, 0x80, 
0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 
0x80, 0x81, 0x80, 0x80, 0x80, 0x02, 0x00, 0x80, 
0x80, 0x80, 0x80, 0x00, 0x01, 0x00, 0x10, 0x00, 
0x00, 0x00, 0x80, 0x80, 0x80, 0x88, 0x80, 0x80, 
0x80, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 
0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 
0x12, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 
0x10, 0x10, 0x10, 0x08, 0x04, 0x04, 0x06, 0x01, 
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x04, 
0x08, 0x08, 0x04, 0x02, 0x02, 0x04, 0x08, 0x10, 
0x20, 0x20, 0x22, 0x10, 0x08, 0x08, 0x08, 0x04, 
0x00, 0x00, 0x00, 0xfc, 0xfe, 0xff, 0xff, 0xff, 
0x00, 0x00, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3f, 
0xff, 0xff, 0xff, 0xf8, 0x80, 0x7f, 0x07, 0x01, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x01, 0xff, 0x0f, 0x3f, 0x7f, 0xff, 0xfe, 0xf8, 
0xe1, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 
0x20, 0x10, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 
0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x04, 
0x08, 0x10, 0x10, 0x10, 0x20, 0x40, 0x82, 0x80, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 
0x20, 0x40, 0x80, 0x01, 0x03, 0x07, 0x0f, 0x0f, 
0x08, 0x08, 0x0f, 0x0f, 0x07, 0x03, 0x01, 0x00, 
0x06, 0x0f, 0x0f, 0x06, 0x00, 0x00, 0x00, 0x00, 
0x03, 0x0f, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x06, 0x0f, 0x0f, 0x06, 0x00, 0x00, 
0x0c, 0x0f, 0x0c, 0x00, 0x00, 0x01, 0x07, 0x0f, 
0x0f, 0x0f, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 
0x06, 0x00, 0x08, 0x08, 0x0f, 0x0f, 0x0f, 0x0f, 
0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x60, 0x60, 
0x60, 0x60, 0x78, 0x7e, 0x78, 0x60, 0x60, 0x60, 
0x00, 0x00, 0xe0, 0x10, 0x08, 0x04, 0x04, 0x04, 
0x07, 0x07, 0x04, 0x04, 0x04, 0x08, 0x10, 0xe0, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x01, 0x03, 0xc5, 0xc5, 0xef, 0xdd, 0xcd, 0xcd, 
0xdd, 0xef, 0xc5, 0xc5, 0x03, 0x01, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x38, 
0x16, 0x16, 0x38, 0x00, 0x06, 0x06, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x28, 0x10, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x24, 0x2a, 0x2a, 0x12, 0x00, 0x02, 
0x3e, 0x02, 0x00, 0x38, 0x16, 0x16, 0x38, 0x00, 
0x3e, 0x0a, 0x0a, 0x34, 0x00, 0x02, 0x3e, 0x02, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0xfe, 0xfe, 0x02, 0x02, 0x03, 0x03, 0x02, 0x02, 
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 
0x00, 0x00, 0x87, 0x48, 0x50, 0x60, 0x60, 0x60, 
0x60, 0x60, 0x60, 0x60, 0x60, 0x50, 0x48, 0x87, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x80, 0xc0, 0xff, 0xd5, 0x55, 
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x3e, 
0x2a, 0x2a, 0x14, 0x00, 0x06, 0x06, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x28, 0x10, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x24, 0x2a, 0x2a, 0x12, 0x00, 0x3e, 
0x2a, 0x22, 0x00, 0x3e, 0x20, 0x20, 0x00, 0x3e, 
0x2a, 0x22, 0x00, 0x1c, 0x22, 0x22, 0x14, 0x00, 
0x02, 0x3e, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xb0, 0xb0, 0x30, 0x30, 
0x3f, 0x3f, 0x30, 0x30, 0xb0, 0xb0, 0xb0, 0xb0, 
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 
0xfe, 0x01, 0x20, 0x60, 0xa0, 0xb0, 0xe8, 0xa4, 
0xa4, 0xa4, 0xa4, 0xe8, 0xb0, 0xa0, 0x60, 0x20, 
0x01, 0xfe, 0x0e, 0x0e, 0x0a, 0x0e, 0x8a, 0x4e, 
0x4a, 0x4e, 0x4f, 0x47, 0x43, 0x41, 0x40, 0x80, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x60, 0xd0, 0xd8, 0xd0, 0x60, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x02, 0xe4, 0xf8, 0xe0, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 
0x40, 0x40, 0x40, 0x40, 0x5f, 0xdf, 0xc0, 0xc4, 
0x8c, 0x14, 0x16, 0xbd, 0x74, 0x34, 0x34, 0x74, 
0xbd, 0x16, 0x14, 0x0c, 0x04, 0x00, 0xff, 0xff, 
0x03, 0x04, 0x08, 0x10, 0xb0, 0xb0, 0x75, 0x33, 
0x31, 0x31, 0x33, 0x75, 0xb0, 0xb0, 0x10, 0x08, 
0x04, 0x03, 0x03, 0x03, 0x03, 0x1f, 0x20, 0x40, 
0xc0, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x40, 0x20, 
0x1f, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xc0, 0xc0, 
0xc0, 0xdc, 0xc8, 0xdc, 0xdf, 0xdf, 0xdf, 0xdc, 
0xc8, 0xdc, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 
0x80, 0x10, 0x28, 0x38, 0x28, 0x3c, 0x2a, 0x79, 
0x69, 0x79, 0x69, 0x79, 0x2a, 0x3c, 0x28, 0x38, 
0x28, 0x10, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 
0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x60, 
0x50, 0x70, 0x5f, 0x7f, 0x51, 0x7f, 0x5f, 0x70, 
0x50, 0x60, 0x00, 0x80, 0xc0, 0xe0, 0xff, 0x80, 
0xd5, 0x80, 0xd5, 0x80, 0x80, 0x9f, 0x9f, 0x9f, 
0x9f, 0x9f, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9f, 0xff, 
};


//SPRITE DE LA PANTALLA INICIAL DEL JUEGO
const unsigned char pantallainicial128x64 [] PROGMEM  =
{ 
// 128, 64
// 0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x20, 0x04, 0x80, 0x00, 0x00, 0x10, 0x04, 
0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x02, 
0x00, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x88, 
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 
0x80, 0x04, 0x10, 0x00, 0x00, 0x20, 0x00, 0x00, 
0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 
0x02, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x04, 0x20, 0x00, 0x00, 0x00, 0x08, 
0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x10, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 
0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x10, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x04, 0x40, 0x00, 0x08, 0x00, 0x00, 0x00, 
0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x80, 0x00, 
0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x80, 0x80, 0x88, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 
0x10, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
0x40, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
0x12, 0x00, 0x00, 0x82, 0x00, 0x08, 0x00, 0x00, 
0x10, 0x10, 0x10, 0x08, 0x04, 0x04, 0x02, 0x04, 
0x04, 0x08, 0x10, 0x10, 0x08, 0x04, 0x02, 0x04, 
0x08, 0x08, 0x04, 0x02, 0x02, 0x04, 0x08, 0x10, 
0x20, 0x20, 0x20, 0x10, 0x08, 0x08, 0x08, 0x05, 
0x04, 0x04, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 
0x24, 0x20, 0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 
0x04, 0x04, 0x08, 0x10, 0x10, 0x08, 0x08, 0x04, 
0x04, 0x02, 0x02, 0x04, 0x08, 0x08, 0x10, 0x10, 
0x10, 0x10, 0x14, 0x20, 0x40, 0x80, 0x80, 0x40, 
0x48, 0x40, 0x20, 0x10, 0x10, 0x20, 0x40, 0x80, 
0x80, 0x80, 0x80, 0x80, 0x44, 0x20, 0x10, 0x20, 
0x20, 0x10, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 
0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x04, 
0x08, 0x10, 0x10, 0x10, 0x20, 0x40, 0x82, 0x80, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
...

This file has been truncated, please download it to see its full contents.

Credits

FJNM (PrimoBOY)

FJNM (PrimoBOY)

1 project • 0 followers

Comments