Juego LCD

Dependencies:   mbed freetronicsLCDShield

Files at this revision

API Documentation at this revision

Comitter:
darley_gonzalez
Date:
Mon Sep 20 22:54:33 2021 +0000
Commit message:
Juego

Changed in this revision

freetronicsLCDShield.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 1c73b0721b69 freetronicsLCDShield.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/freetronicsLCDShield.lib	Mon Sep 20 22:54:33 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/KKempeneers/code/freetronicsLCDShield/#fa933933ccd1
diff -r 000000000000 -r 1c73b0721b69 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Sep 20 22:54:33 2021 +0000
@@ -0,0 +1,246 @@
+#include "mbed.h"
+#include "freetronicsLCDShield.h"
+freetronicsLCDShield LCD(D0,D1,D2,D3,D4,D5,D6,A0);  //Definir Pines
+
+const char CGRAM_DATA[32]= {0x00,0x0E,0x0A,0x0E,0x04,0x0E,0x04,0x08,    //Caracter pierna izquierda de personaje
+                            0x00,0x0E,0x0A,0x0E,0x04,0x0E,0x04,0x02,    //Caracter pierna derecha de personaje
+                            0x00,0x00,0x00,0x00,0x00,0x04,0x0E,0x1F,    //Caracter o obstaculo #1
+                            0x00,0x00,0x00,0x04,0x0A,0x15,0x0E,0x1F     //Caracter o obstaculo #2
+                           };
+
+InterruptIn int1(D8);       //Boton salto
+InterruptIn int2(D9);      //Boton Reinicio
+Timer t;                  //Duracion
+Ticker hora;              //Puntuacion
+int n = 0;
+int p,d,q=0,s=16,s1=11,h=0,z=0,w=0; //Variables a usar en el programa
+
+void ISR_pin6()         //Funcion del boton
+{
+    if(s>=0 && s<=2) {
+
+        LCD.setCursorPosition(0,0);
+        LCD.putc(0);                    //Saltos
+        LCD.setCursorPosition(1,0);
+        LCD.printf(" ");
+
+        LCD.setCursorPosition(1,s);
+        LCD.putc(2);                   //Animacion del salto con bloque abajo
+        LCD.setCursorPosition(1,s+1);
+        LCD.printf(" ");
+
+        wait(1);
+        LCD.setCursorPosition(1,0);
+        LCD.putc(0);                //Animacion Cuando esta abajo
+        LCD.setCursorPosition(0,0);
+        LCD.printf(" ");
+
+        wait(1);
+        LCD.cls();
+        LCD.setCursorPosition(1,0);
+        LCD.putc(0);
+        h=1;
+
+    } else if(s1>=-5 && s1<=-3) {
+
+        LCD.setCursorPosition(0,0);
+        LCD.putc(0);
+        LCD.setCursorPosition(1,0);
+        LCD.printf(" ");
+
+        LCD.setCursorPosition(1,s1+5);
+        LCD.putc(3);
+        LCD.setCursorPosition(1,s1+6);
+        LCD.printf(" ");
+
+        wait(1);
+
+        LCD.setCursorPosition(1,0);
+        LCD.putc(0);
+        LCD.setCursorPosition(0,0);
+        LCD.printf(" ");
+        wait(1);
+        LCD.cls();
+        LCD.setCursorPosition(1,0);
+        LCD.putc(0);
+        h=1;
+
+    } else {
+
+        LCD.setCursorPosition(0,0);
+        LCD.putc(0);
+        LCD.setCursorPosition(1,0);
+        LCD.printf(" ");
+        wait(1);
+        LCD.setCursorPosition(1,0);
+        LCD.putc(0);
+        LCD.setCursorPosition(0,0);
+        LCD.printf(" ");
+        wait(1);
+        LCD.setCursorPosition(1,0);
+        LCD.putc(0);
+
+    }
+}
+void crono()                //Funcion marcador de puntuacion
+{
+    if(w==0) {
+        if(q == 1) {
+            LCD.setCursorPosition(0,11);
+            LCD.printf(" %d ",d);
+            d=d+1;
+        }
+        if( (z%2) == 0 ) {
+            z=1;
+        } else {
+            z=0;
+        }
+    }
+}
+void reset()            //Despues del game over reinicia juego todo en 0
+{
+    w=0;
+}
+int main()
+{
+    d=0;
+    int1.mode(PullUp);
+    int1.rise(&ISR_pin6);
+    int2.mode(PullUp);
+    int2.rise(&reset);
+    hora.attach(&crono,1);
+    LCD.writeCGRAM (0x00, &CGRAM_DATA[0], 8);
+    LCD.writeCGRAM (0x08, &CGRAM_DATA[8], 8);   //llamado de mis animaciones
+    LCD.writeCGRAM (0x10, &CGRAM_DATA[16], 8);
+    LCD.writeCGRAM (0x18, &CGRAM_DATA[24], 8);
+    LCD.cls();
+    LCD.setBackLight(false);
+    wait(2.0);
+    LCD.setBackLight((float) 0.7);
+    LCD.cls();
+    LCD.setCursorPosition (0,2);
+    LCD.setCursor(false);
+    LCD.putc('U');
+    wait(0.5);
+    LCD.putc('N');
+    wait(0.5);
+    LCD.putc('I');
+    wait(0.5);
+    LCD.putc('V');
+    wait(0.5);
+    LCD.putc('E');                      //Banner
+    wait(0.5);
+    LCD.putc('R');
+    wait(0.5);
+    LCD.putc('S');
+    wait(0.5);
+    LCD.putc('I');
+    wait(0.5);
+    LCD.putc('D');
+    wait(0.5);
+    LCD.putc('A');
+    wait(0.5);
+    LCD.putc('D');
+    wait(0.5);
+    LCD.setCursorPosition (1,4);
+    LCD.setCursor(false);
+    LCD.putc('D');
+    wait(0.5);
+    LCD.putc('I');
+    wait(0.5);
+    LCD.putc('S');
+    wait(0.5);
+    LCD.putc('T');
+    wait(0.5);
+    LCD.putc('R');
+    wait(0.5);
+    LCD.putc('I');
+    wait(0.5);
+    LCD.putc('T');
+    wait(0.5);
+    LCD.putc('A');
+    wait(0.5);
+    LCD.putc('L');
+    wait(0.5);
+    LCD.cls();
+    q=1;
+    LCD.setCursorPosition(1,0);
+    LCD.putc(0);
+
+    while(true) {
+        if(w==0) {
+            if(h==0) {
+                LCD.setCursorPosition(1,0);
+                LCD.putc(z);
+
+                LCD.setCursorPosition(0,4);
+                LCD.printf("level %d", (d/10));
+                //Juego en movimiento con la animacion y obstaculos
+                LCD.setCursorPosition(1,s);
+                LCD.putc(2);
+                LCD.setCursorPosition(1,s+1);
+                LCD.printf(" ");
+
+                LCD.setCursorPosition(1,s1+5);
+                LCD.putc(3);
+                LCD.setCursorPosition(1,s1+6);
+                LCD.printf(" ");
+                if(s1==-5 || s==0) {
+                    LCD.cls();
+                    w=1;
+                }
+
+            } else {                //Si toca el bloque el personaje
+
+                h=0;
+                LCD.setCursorPosition(1,0);
+                LCD.putc(z);
+            }
+
+            LCD.setCursorPosition(1,0);
+            LCD.putc(z);
+
+
+            if(s1<-5) {
+                s1=16;
+            }
+            if(s<0) {
+                s=16;
+            }
+            s--;
+            s1--;
+            wait(0.7);
+
+        } else {                            //Visualiza el GAME OVER
+            LCD.cls();
+            LCD.setCursorPosition (0,4);
+            LCD.setCursor(false);
+            LCD.putc('G');
+            wait(0.5);
+            LCD.putc('A');
+            wait(0.5);
+            LCD.putc('M');
+            wait(0.5);
+            LCD.putc('E');
+            wait(0.5);
+            LCD.putc(' ');
+            wait(0.5);
+            LCD.putc('O');
+            wait(0.5);
+            LCD.putc('V');
+            wait(0.5);
+            LCD.putc('E');
+            wait(0.5);
+            LCD.putc('R');
+            wait(0.5);
+            LCD.cls();
+            s=16;
+            s1=11;
+            d=0;
+        }
+    }
+
+}
+
+
+
diff -r 000000000000 -r 1c73b0721b69 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Sep 20 22:54:33 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file