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