Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

Committer:
adambakerwa
Date:
Mon Mar 25 11:01:43 2019 +0000
Revision:
13:35a459a33bbd
Parent:
12:1253afc5d536
Child:
14:d8ced73dbb83
running animation and ticker implemented

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 13:35a459a33bbd 12 Ticker ticker;
adambakerwa 13:35a459a33bbd 13
adambakerwa 13:35a459a33bbd 14
adambakerwa 13:35a459a33bbd 15 volatile int timer_flag = 0;
adambakerwa 13:35a459a33bbd 16
adambakerwa 13:35a459a33bbd 17 void timer_isr();
adambakerwa 1:a3cce487dffe 18
adambakerwa 6:cef9c2853315 19
adambakerwa 13:35a459a33bbd 20 int main()
adambakerwa 13:35a459a33bbd 21 {
adambakerwa 13:35a459a33bbd 22
adambakerwa 13:35a459a33bbd 23 int fps = 2;
adambakerwa 13:35a459a33bbd 24
adambakerwa 1:a3cce487dffe 25 pad.init();
adambakerwa 1:a3cce487dffe 26 lcd.init();
adambakerwa 13:35a459a33bbd 27 lcd.setContrast(0.5);
adambakerwa 1:a3cce487dffe 28 Move move;
adambakerwa 13:35a459a33bbd 29
adambakerwa 1:a3cce487dffe 30 move = runner.init(move);
adambakerwa 13:35a459a33bbd 31
adambakerwa 13:35a459a33bbd 32 ticker.attach(&timer_isr,1.0f/fps);
adambakerwa 13:35a459a33bbd 33
adambakerwa 13:35a459a33bbd 34
adambakerwa 1:a3cce487dffe 35 while(1) {
adambakerwa 1:a3cce487dffe 36
adambakerwa 1:a3cce487dffe 37 lcd.clear();
adambakerwa 13:35a459a33bbd 38
adambakerwa 4:cf765fff4e0e 39 float speed = runner.getSpeed(pad);
adambakerwa 13:35a459a33bbd 40
adambakerwa 13:35a459a33bbd 41 move = runner.nextLevel(move); //must happen befofre 'fall' otherwise runner can fall out of screen
adambakerwa 11:dcb38924d96b 42
adambakerwa 11:dcb38924d96b 43 runner.whatLevel(move, lcd);
adambakerwa 13:35a459a33bbd 44
adambakerwa 4:cf765fff4e0e 45 move = runner.buttonPress(move, lcd, pad);
adambakerwa 13:35a459a33bbd 46
adambakerwa 4:cf765fff4e0e 47 move = runner.jump(move, lcd);
adambakerwa 13:35a459a33bbd 48
adambakerwa 13:35a459a33bbd 49 move = runner.wallJumpL(move, lcd, speed);
adambakerwa 13:35a459a33bbd 50
adambakerwa 13:35a459a33bbd 51 move = runner.wallJumpR(move, lcd, speed);
adambakerwa 13:35a459a33bbd 52
adambakerwa 3:c1f4968111d7 53 move = runner.runLeft(move, lcd, speed);
adambakerwa 13:35a459a33bbd 54
adambakerwa 3:c1f4968111d7 55 move = runner.runRight(move, lcd, speed);
adambakerwa 13:35a459a33bbd 56
adambakerwa 10:a37a4d2c09e7 57 move = runner.fall(move, lcd);
adambakerwa 13:35a459a33bbd 58
adambakerwa 13:35a459a33bbd 59 move = runner.runnerState(move, lcd, speed); //what state runner is in (must come after next level
adambakerwa 13:35a459a33bbd 60
adambakerwa 13:35a459a33bbd 61 runner.whatLevel(move, lcd); // call level
adambakerwa 13:35a459a33bbd 62
adambakerwa 13:35a459a33bbd 63
adambakerwa 13:35a459a33bbd 64
adambakerwa 13:35a459a33bbd 65 char buffer[14];
adambakerwa 13:35a459a33bbd 66 sprintf(buffer,"%i",move.cr);
adambakerwa 13:35a459a33bbd 67 lcd.printString(buffer,0,1);
adambakerwa 13:35a459a33bbd 68
adambakerwa 13:35a459a33bbd 69 //sleep(); //sleep untill next refresh
adambakerwa 13:35a459a33bbd 70
adambakerwa 13:35a459a33bbd 71 if (timer_flag == true) {
adambakerwa 13:35a459a33bbd 72 timer_flag = 0; // if it has, clear the flag
adambakerwa 13:35a459a33bbd 73
adambakerwa 13:35a459a33bbd 74 lcd.refresh();
adambakerwa 13:35a459a33bbd 75
adambakerwa 13:35a459a33bbd 76 }
adambakerwa 12:1253afc5d536 77
adambakerwa 13:35a459a33bbd 78 sleep();
adambakerwa 13:35a459a33bbd 79
adambakerwa 1:a3cce487dffe 80 }
adambakerwa 13:35a459a33bbd 81
adambakerwa 13:35a459a33bbd 82 }
adambakerwa 13:35a459a33bbd 83
adambakerwa 13:35a459a33bbd 84 void timer_isr()
adambakerwa 13:35a459a33bbd 85 {
adambakerwa 13:35a459a33bbd 86
adambakerwa 13:35a459a33bbd 87 timer_flag = 1; // set flag in ISR
adambakerwa 1:a3cce487dffe 88 }
adambakerwa 1:a3cce487dffe 89
adambakerwa 1:a3cce487dffe 90
adambakerwa 13:35a459a33bbd 91 //rtos
adambakerwa 2:1ad390d81d81 92
adambakerwa 13:35a459a33bbd 93