Dependencies: mbed FATFileSystem
Diff: SceneCreator/SceneCreator.cpp
- Revision:
- 12:ff8d26124c38
- Parent:
- 11:7f3e9bc7366d
- Child:
- 13:95323e0f2fcb
--- a/SceneCreator/SceneCreator.cpp Sun May 05 03:45:29 2019 +0000 +++ b/SceneCreator/SceneCreator.cpp Sun May 05 19:32:58 2019 +0000 @@ -1,9 +1,11 @@ #include "SceneCreator.h" #include "ScenePaths.h" +Timer dynatime; + DigitalOut led(LED_BLUE); Serial pc(USBTX,USBRX); -Timer t; + SceneCreator::SceneCreator(PinName Button) { this->set_buttonPin(Button); dead = false; @@ -14,17 +16,43 @@ this->deletebutton(); } -void SceneCreator::Scenesp(N5110 &lcd, CaMove &CM,short int spl,short int spx,short int spy, Direction spd, int rng) { - t.start(); +void SceneCreator::Scenesp(N5110 &lcd, CaMove &CM,short int spl,short int spx,short int spy, Direction spd, int rng,WDplayer &wav) { + wav.ISRset(); CM.init(spx,spy,spd); CM.AIinit(); lcd.normalMode(); this->set_sreg(CM,spl); bool p[6] = {true,true,true,true,true,true}; while(!dead && CM.in_screen()) { + dynatime.start(); lcd.clear(); + wav.ISRpreload(); Bitmap::renderBMP(SCN[spl],lcd,0,0); - if (p[0]) { + //CORE_1 + this->Core_1(lcd, CM,spl,rng,p); + CM.move(lcd); + CM.chase(lcd,spl); + wav.ISRpreload(); + //CORE_2 + this->Core_2(lcd, CM,spl,rng,p,wav); + if (CM.is_caught()) { + dead = true; + } + lcd.refresh(); + dynatime.stop(); + float waittime = 0.15f - dynatime.read(); + pc.printf("%f\n",waittime); + if (waittime > 0.00000f) { + wait(waittime); + } + dynatime.reset(); + }; + wav.ISRreset(); + CM.delete_regions(); +}; + +void SceneCreator::Core_1(N5110 &lcd, CaMove &CM,short int spl,int rng,bool p[6]) { + if (p[0]) { this->pre_func0(spl,lcd,CM,rng); } if (p[1]) { @@ -42,62 +70,66 @@ if (p[5]) { this->pre_func5(spl,lcd,CM,rng); } - CM.move(lcd); - CM.chase(lcd,spl); - switch(CM.get_treg()) { +} + +void SceneCreator::Core_2(N5110 &lcd, CaMove &CM,short int spl,int rng,bool (&p)[6],WDplayer &wav) { + switch(CM.get_treg()) { case 0: + wav.ISRpause(); if(p[0]) { - p[0] = false; + p[0] *= false; this->flash(lcd); } this->pos_func0(spl,lcd,CM,rng); + wav.ISRresume(); break; case 1: + wav.ISRpause(); if(p[1]) { - p[1] = false; + p[1] *= false; this->flash(lcd); } this->pos_func1(spl,lcd,CM,rng); + wav.ISRresume(); break; case 2: + wav.ISRpause(); if(p[2]) { - p[2] = false; + p[2] *= false; this->flash(lcd); } this->pos_func2(spl,lcd,CM,rng); + wav.ISRresume(); break; case 3: + wav.ISRpause(); if(p[3]) { - p[3] = false; + p[3] *= false; this->flash(lcd); } this->pos_func3(spl,lcd,CM,rng); + wav.ISRresume(); break; case 4: + wav.ISRpause(); if(p[4]) { - p[4] = false; + p[4] *= false; this->flash(lcd); } this->pos_func4(spl,lcd,CM,rng); + wav.ISRresume(); break; case 5: + wav.ISRpause(); if(p[5]) { - p[5] = false; + p[5] *= false; this->flash(lcd); } this->pos_func5(spl,lcd,CM,rng); + wav.ISRresume(); break; }; - if (CM.is_caught()) { - dead = true; - } - lcd.refresh(); - t.stop(); - pc.printf("%f\n",t.read()); - wait(0.1); - }; - CM.delete_regions(); -}; +} //settings void SceneCreator::set_sreg(CaMove &CM,int sce) {