Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

Committer:
adambakerwa
Date:
Sun Apr 21 18:17:20 2019 +0000
Revision:
24:f5dd1f3db693
Parent:
23:4b1abf659467
Child:
25:230e4163cb6b
Cleaned up runner class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adambakerwa 1:a3cce487dffe 1 #include "mbed.h"
adambakerwa 1:a3cce487dffe 2 #include "Gamepad.h"
adambakerwa 1:a3cce487dffe 3 #include "N5110.h"
adambakerwa 1:a3cce487dffe 4 #include "Runner.h"
adambakerwa 6:cef9c2853315 5 #include "Levels.h"
adambakerwa 9:ddeafaadf984 6 #include "Animation.h"
adambakerwa 1:a3cce487dffe 7
adambakerwa 1:a3cce487dffe 8 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
adambakerwa 1:a3cce487dffe 9 Gamepad pad;
adambakerwa 1:a3cce487dffe 10 Runner runner;
adambakerwa 9:ddeafaadf984 11 Animation ani;
adambakerwa 15:c4de6874aa19 12 Levels lev;
adambakerwa 13:35a459a33bbd 13 Ticker ticker;
adambakerwa 13:35a459a33bbd 14
adambakerwa 13:35a459a33bbd 15
adambakerwa 13:35a459a33bbd 16 volatile int timer_flag = 0;
adambakerwa 13:35a459a33bbd 17
adambakerwa 13:35a459a33bbd 18 void timer_isr();
adambakerwa 1:a3cce487dffe 19
adambakerwa 6:cef9c2853315 20
adambakerwa 13:35a459a33bbd 21 int main()
adambakerwa 13:35a459a33bbd 22 {
adambakerwa 13:35a459a33bbd 23
adambakerwa 18:0a0976faedfb 24 int fps = 6; //6
adambakerwa 22:8218092c2e4b 25
adambakerwa 1:a3cce487dffe 26 pad.init();
adambakerwa 1:a3cce487dffe 27 lcd.init();
adambakerwa 17:ecbafe932c19 28 lcd.setContrast(0.55);
adambakerwa 1:a3cce487dffe 29 Move move;
adambakerwa 18:0a0976faedfb 30 Pos pos;
adambakerwa 24:f5dd1f3db693 31
adambakerwa 1:a3cce487dffe 32 move = runner.init(move);
adambakerwa 18:0a0976faedfb 33 pos = lev.init(pos);
adambakerwa 24:f5dd1f3db693 34
adambakerwa 13:35a459a33bbd 35 ticker.attach(&timer_isr,1.0f/fps);
adambakerwa 13:35a459a33bbd 36
adambakerwa 24:f5dd1f3db693 37 int gameover = 0;
adambakerwa 13:35a459a33bbd 38
adambakerwa 1:a3cce487dffe 39 while(1) {
adambakerwa 1:a3cce487dffe 40
adambakerwa 14:d8ced73dbb83 41 if (timer_flag == true) {
adambakerwa 13:35a459a33bbd 42
adambakerwa 14:d8ced73dbb83 43 timer_flag = 0; // if it has, clear the flag
adambakerwa 13:35a459a33bbd 44
adambakerwa 14:d8ced73dbb83 45 lcd.clear();
adambakerwa 17:ecbafe932c19 46
adambakerwa 24:f5dd1f3db693 47 move = runner.nextLevel(move);
adambakerwa 24:f5dd1f3db693 48 pos = lev.whatLevel(lcd, move.l);
adambakerwa 24:f5dd1f3db693 49 move = runner.blockhead(move, pos, lcd, pad);
adambakerwa 24:f5dd1f3db693 50 gameover = runner.gameover(move, pos, lcd);
adambakerwa 13:35a459a33bbd 51
adambakerwa 13:35a459a33bbd 52 lcd.refresh();
adambakerwa 13:35a459a33bbd 53
adambakerwa 14:d8ced73dbb83 54 } else {
adambakerwa 14:d8ced73dbb83 55
adambakerwa 14:d8ced73dbb83 56 sleep();
adambakerwa 14:d8ced73dbb83 57
adambakerwa 13:35a459a33bbd 58 }
adambakerwa 1:a3cce487dffe 59 }
adambakerwa 13:35a459a33bbd 60
adambakerwa 13:35a459a33bbd 61 }
adambakerwa 13:35a459a33bbd 62
adambakerwa 13:35a459a33bbd 63 void timer_isr()
adambakerwa 13:35a459a33bbd 64 {
adambakerwa 13:35a459a33bbd 65
adambakerwa 13:35a459a33bbd 66 timer_flag = 1; // set flag in ISR
adambakerwa 1:a3cce487dffe 67 }
adambakerwa 1:a3cce487dffe 68
adambakerwa 1:a3cce487dffe 69
adambakerwa 13:35a459a33bbd 70 //rtos
adambakerwa 24:f5dd1f3db693 71 /**
adambakerwa 24:f5dd1f3db693 72 char buffer[14];
adambakerwa 24:f5dd1f3db693 73 sprintf(buffer,"%i", gameover);
adambakerwa 24:f5dd1f3db693 74 lcd.printString(buffer,0,0);
adambakerwa 24:f5dd1f3db693 75 */
adambakerwa 24:f5dd1f3db693 76 //NEED TO RESET POS CORDS EACH NEW LEVEL TO PREVENT UNNECERSARRY GAME OVER (have fun x)