Game for Leeds University Gamepad for the FRDM-K64F: Game is a RPG Horror Title.
Dependencies: mbed FATFileSystem
Diff: SceneCreator/SceneCreator.cpp
- 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); +} + +