Hardware components | ||||||
| × | 1 | ||||
| × | 1 | ||||
Software apps and online services | ||||||
| ||||||
Hand tools and fabrication machines | ||||||
| ||||||
| ||||||
| ||||||
|
Hello, my project is a handheld game based on Arduboy and inspired by the game "Donkey Kong Jr" from "Game and Watch".
I have always been a video game and electronics enthusiast. Some time ago I saw "Arduboy" on the internet, it seemed to me something wonderful and incredible.
From that moment I wanted to make my own project based on "Arduboy".
What I wanted was to create the hardware and then make my own games.
The result was the following:
(In the download section you can download a compressed folder in ZIP format with all the files of the game "OVNI" made by me, to be compiled with the Arduino IDE program)
The program that I have used to make the schematic and PCB is "EasyEDA" (I have attached the files in the project).
In the download area there is an Excel-type file where you can find the BOM list of all the components to perform PrimoBOY
The system that I have used to carry out the project is the "sandwich" type.
Para eso, me baso en las indicaciones de "Mr. Blinky" (Arduboy-homemade-package) e incorporaré una memoria flash W25Q128 y convertidor de voltaje bidireccional TXB0104.
I have used an Arduino Pro micro as a microcontroller.
Another very interesting thing is the use of a 2.42-inch OLED screen that really looks great, and that makes the gaming experience great.
The project is really simple. Once the schematic and the PCB were made, it was sent to a company to make the printed circuits.
As you can see the entire PCB circuit has drawn (screen printed) clearly where all the components are located. This way anyone can identify where to weld the components without error. There are indications of the component and its location.
Once they arrived, the first thing that was done is the separation of the three PCB boards that make up PrimoBOY. To do this, just use a small cutting saw and use fine sandpaper to smoothly file the edges.
After cutting and sanding we will have the following:
For the realization of PrimoBOY we will do the following steps:
1º We will solder the pushbuttons in their positions.
2º We will solder the ignition switch.
3º We will solder the piezoelectric speaker (buzzer). You have to take into account your position as indicated in the photograph. The + point on the left side.
4º We will solder the USBASP connector.
5º We will solder the flash memory of 128 mb model W25Q128. We will weld in its position bidirectional voltage converter TXB0104.
6º We will solder the connectors of the LIPO 3.7 V battery. To place the battery we can glue it with a bar glue gun. Although there are also two holes next to the battery to be able to catch it with a small black naylon clamp. I use the clamp.
7º We will solder the two connectors H1 and H2 that will serve to feed the buzzer.
8º We will solder the DC-DC voltage converter to 3.3V AMS117.
9º We will solder the Arduino Pro Micro.
10º We will weld the battery charger LIPO 3, 7 V type TPA4056
11º We will solder the 2.42-inch Oled screen. It will also be necessary to use some naylon or plastic spacers to place the screen in its position.
Now what we will do, using separators and screws is to assemble the whole assembly.
We will take the bottom PCB and place the screws and separators.
We will put on top of the component PCB. Placing the corresponding spacers.
Finally we will place the top PCB and put the clamping screws.
In this way we will have PrimoBOY available.
You can see in the following photographs how everything would look.
The next step would be to use the USBASP connector so that using the steps indicated by Mr Blinky in Arduboy (Arduboy-homemade-package) to enter into the memory the games we want.
The next step I took was to make my own game. The game is called "OVNI". For this I made a reinterpretation of the game "Flying Saucer" of the series of handheld machines Q &Q LCD CARG GAME that are a type of games "Game and Watch".
(In the download section you can download a compressed folder in ZIP format with all the files of the game "OVNI" made by me, to be compiled with the Arduino IDE program)
In the video below, after introducing some Arduboy games, you can see my "OVNI" game running inside PrimoBOY.
THE GAME "OVNI" MADE FOR ARDUBOY - PrimoBOY HAS
THE FOLLOWING FEATURES:
HOW IT IS PLAYED:
introduction:
We are on the planet Mars. There are installed two bases or space stations: our base station and the alien base station.
The alien base station has now kidnapped one of oursronautas and held her at its base station.
Our mission will be to rescue our astronaut and return to our base station.
The game has two game modes: Game A and Game B (Game B, is the same as A, but the movement of enemies is faster)
Initially the game always starts with game A.
Our mission is to enter the alien base station and rescue our astronaut.
For this we will use our spacecraft called "OVNI" which will move along the surface of Mars until we reach the alien base station. We will enter its base and rescue our astronaut.
In order to do the above, we must first catch or reach the landing gear of our OVNI spacecraft. Once this is done, we can enter the alien base as long as we have the barrier or door that exists in the alien base open.
Every time we enter the enemy base station we will get 20 points.
During our journey to the alien base different enemies will appear who will try to destroy our "OVNI" ship and eliminate our pilot.
Types of enemies:
Enemy 1: This is a meteorite that appears from the left side of the plantalla. As it gets closer to us it gets bigger.
Enemy 2: The alien base station have a missile launcher located on the ground that will launch missiles to try to destroy us. As the missile approaches us, it gets bigger.
Enemy 3: Aliens have an enemy spaceship number 2. This ship will appear in the sky and send us a projectile to try to destroy us. The projectile as it approaches us gets bigger.
Enemy 4: This is a meteorite that appears from the right side of the plantalla. As it gets closer to us it gets bigger.
Every time an enemy manages to reach us we will lose a "OVNI" ship. We only have 3 "OVNI" ships to complete the mission.
When we get our goal of entering the enemy base station, the "OVNI" ship will return to the starting point and we will make the journey again. We will try to score as many points as possible. If we manage to reach 200 points, we will get one more "OVNI" ship that will be added to the number we have, which can never be greater than 3.
I hope you like it.
//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.
Comments