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

Dependencies:   mbed FATFileSystem

Revision:
8:e3a76a808a4c
Child:
9:ac396c818874
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SceneCreator/SceneCreator.cpp	Tue Apr 23 21:46:55 2019 +0000
@@ -0,0 +1,366 @@
+#include "SceneCreator.h"
+#include "ScenePaths.h"
+
+DigitalOut led(LED_BLUE);
+Serial pc(USBTX,USBRX);
+
+SceneCreator::SceneCreator() {
+    
+}
+
+SceneCreator::~SceneCreator() {
+    /*
+    delete pre_func;
+    delete pos_func;
+    */
+}
+
+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) {
+        lcd.clear();
+        Bitmap::renderBMP(SCN[spl],lcd,0,0);
+        //-------------------------will use ifs - will do at start
+        if (p[0]) {
+            this->pre_func0(spl,lcd);
+        }
+        if (p[1]) {
+            this->pre_func1(spl,lcd);
+        }
+        if (p[2]) {
+            this->pre_func2(spl,lcd);
+        }
+        if (p[3]) {
+            this->pre_func3(spl,lcd);
+        }
+        if (p[4]) {
+            this->pre_func4(spl,lcd);
+        }
+        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);
+        
+        switch(CM.get_treg()) {
+            case 0:
+                if(p[0]) {
+                    p[0] = false;
+                    progress++;
+                }
+                //case 0 function
+                this->pos_func0(spl,lcd);
+            break;
+            case 1:
+                if(p[1]) {
+                    p[1] = false;
+                    progress++;
+                }
+                //case 1 function
+                this->pos_func1(spl,lcd);
+            break;
+            case 2:
+                if(p[2]) {
+                    p[2] = false;
+                    progress++;
+                }
+                //case 2 function
+                this->pos_func2(spl,lcd);
+            break;
+            case 3:
+                if(p[3]) {
+                    p[3] = false;
+                    progress++;
+                }
+                //case 3 function
+                this->pos_func3(spl,lcd);
+            break;
+            case 4:
+                if(p[4]) {
+                    p[4] = false;
+                    progress++;
+                }
+                //case 4 function
+                this->pos_func4(spl,lcd);
+            break;
+            case 5:
+                if(p[5]) {
+                    p[5] = false;
+                    progress++;
+                }
+                //case 5 function
+                this->pos_func5(spl,lcd);
+            break;
+        };
+        lcd.refresh();
+        wait(0.1);
+    };
+    CM.delete_regions();
+};
+
+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
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+//Function Pointers Failing mbed in-capable
+//pre-func
+void SceneCreator::pre_func0(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        lcd.drawRect(5,2,18,2,FILL_BLACK);
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+void SceneCreator::pre_func1(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;  
+    }
+}
+
+void SceneCreator::pre_func2(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+void SceneCreator::pre_func3(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+void SceneCreator::pre_func4(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+void SceneCreator::pre_func5(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+//pos func
+
+void SceneCreator::pos_func0(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        this->speak(lcd);
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+void SceneCreator::pos_func1(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        this->speak2(lcd);
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+void SceneCreator::pos_func2(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+
+void SceneCreator::pos_func3(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+void SceneCreator::pos_func4(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+void SceneCreator::pos_func5(int sce,N5110 &lcd) {
+    switch(sce) {
+        case 0:
+        break;
+        case 1:
+        break;
+        case 2:
+        break;
+        case 3:
+        break;
+        case 4:
+        break;
+    }
+}
+
+//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);
+}
+
+