Game for Leeds University Gamepad for the FRDM-K64F: Game is a RPG Horror Title.

Dependencies:   mbed FATFileSystem

Revision:
9:ac396c818874
Parent:
8:e3a76a808a4c
Child:
10:4fda7b01484a
--- a/SceneCreator/SceneCreator.cpp	Tue Apr 23 21:46:55 2019 +0000
+++ b/SceneCreator/SceneCreator.cpp	Thu Apr 25 01:31:32 2019 +0000
@@ -3,28 +3,24 @@
 
 DigitalOut led(LED_BLUE);
 Serial pc(USBTX,USBRX);
-
-SceneCreator::SceneCreator() {
+SceneCreator::SceneCreator(PinName Button) {
+    this->set_buttonPin(Button);
+    dead = false;
     
 }
 
 SceneCreator::~SceneCreator() {
-    /*
-    delete pre_func;
-    delete pos_func;
-    */
+   this->deletebutton();
 }
 
 void SceneCreator::Scenesp(N5110 &lcd, CaMove &CM,short int spl,short int spx,short int spy, Direction spd) {
     CM.init(spx,spy,spd);
     this->set_sreg(CM,spl);
-    bool dead = false;
     short int progress = 0;
     bool p[6] = {true,true,true,true,true,true};
-    while(!dead) {
+    while(!dead && CM.in_screen()) {
         lcd.clear();
         Bitmap::renderBMP(SCN[spl],lcd,0,0);
-        //-------------------------will use ifs - will do at start
         if (p[0]) {
             this->pre_func0(spl,lcd);
         }
@@ -43,90 +39,76 @@
         if (p[5]) {
             this->pre_func5(spl,lcd);
         }
-        
-        //---------------------------------------------------
-        //actions from evevnts
-        //use no break switch case
-        //or if statements deciding
-        /*
-        switch(progress) {
-            case 5:
-            case 4:
-            case 3:
-            case 2:
-            case 1:
-            case 0:
-        }
-        */
-        //need function pointers total of maybe 12 pointers 6-immediate action and 6- post action
-        //for 8 scenes -- can be problem
-        //----------------------------------------------------
-        
         CM.move(lcd);
-        
+        CM.chase(lcd);
         switch(CM.get_treg()) {
             case 0:
                 if(p[0]) {
                     p[0] = false;
                     progress++;
+                    this->flash(lcd);
                 }
-                //case 0 function
                 this->pos_func0(spl,lcd);
             break;
             case 1:
                 if(p[1]) {
                     p[1] = false;
                     progress++;
+                    this->flash(lcd);
                 }
-                //case 1 function
                 this->pos_func1(spl,lcd);
             break;
             case 2:
                 if(p[2]) {
                     p[2] = false;
                     progress++;
+                    this->flash(lcd);
                 }
-                //case 2 function
                 this->pos_func2(spl,lcd);
             break;
             case 3:
                 if(p[3]) {
                     p[3] = false;
                     progress++;
+                    this->flash(lcd);
                 }
-                //case 3 function
                 this->pos_func3(spl,lcd);
             break;
             case 4:
                 if(p[4]) {
                     p[4] = false;
                     progress++;
+                    this->flash(lcd);
                 }
-                //case 4 function
                 this->pos_func4(spl,lcd);
             break;
             case 5:
                 if(p[5]) {
                     p[5] = false;
                     progress++;
+                    this->flash(lcd);
                 }
-                //case 5 function
                 this->pos_func5(spl,lcd);
             break;
         };
+        //ai chaser
+        if (CM.is_caught()) {
+            dead = true;
+        }
         lcd.refresh();
         wait(0.1);
     };
     CM.delete_regions();
 };
 
+//settings
 void SceneCreator::set_sreg(CaMove &CM,int sce) {
     switch(sce) {
         case 0:
-        CM.set_region(71, 31, 10, 14); //  case 0 - cause event 0
-        CM.set_region(4, 21, 5, 24); // case 1
+        this->set_scene0(CM);
         break;
         case 1:
+        this->set_scene1(CM);
         break;
         case 2:
         break;
@@ -142,9 +124,10 @@
 void SceneCreator::pre_func0(int sce,N5110 &lcd) {
     switch(sce) {
         case 0:
-        lcd.drawRect(5,2,18,2,FILL_BLACK);
+        this->obj0_scene0(lcd);
         break;
         case 1:
+        this->obj0_scene1(lcd);
         break;
         case 2:
         break;
@@ -160,6 +143,7 @@
         case 0:
         break;
         case 1:
+        this->obj1_scene1(lcd);
         break;
         case 2:
         break;
@@ -234,9 +218,10 @@
 void SceneCreator::pos_func0(int sce,N5110 &lcd) {
     switch(sce) {
         case 0:
-        this->speak(lcd);
+        this->event0_scene0(lcd);
         break;
         case 1:
+        this->event0_scene1(lcd);
         break;
         case 2:
         break;
@@ -250,9 +235,10 @@
 void SceneCreator::pos_func1(int sce,N5110 &lcd) {
     switch(sce) {
         case 0:
-        this->speak2(lcd);
+        this->event1_scene0(lcd);
         break;
         case 1:
+        this->event1_scene1(lcd);
         break;
         case 2:
         break;
@@ -324,43 +310,3 @@
     }
 }
 
-//global 
-
-void SceneCreator::trans(N5110 &lcd) {
-    for (int i = 0;i < 84;i++) {
-    lcd.drawRect(0,0,i,48,FILL_BLACK);
-    lcd.refresh();
-    }
-    for (int i = 0;i < 84;i++) {
-    lcd.drawRect(0,0,i,48,FILL_WHITE);
-    lcd.refresh();
-    }
-}
-
-
-//unique to scene functions
-//scne 0 - event 0
-void SceneCreator::speak(N5110 &lcd) {
-    this->trans(lcd);
-    lcd.clear();
-    lcd.printString("Hello my name",0,0);
-    lcd.printString("Veigar i shall",0,1);
-    lcd.printString("Help you ...",0,2);
-    lcd.printString("find what you",0,3);
-    lcd.printString("seek. now go..",0,4);
-    lcd.refresh();
-    wait(1);
-    this->trans(lcd);
-}
-//event 1
-void SceneCreator::speak2(N5110 &lcd) {
-    this->trans(lcd);
-    lcd.clear();
-    lcd.printString("its a lamp",0,0);
-    lcd.printString("quite eerie",0,1);
-    lcd.refresh();
-    wait(1);
-    this->trans(lcd);
-}
-
-