copy

Dependencies:   Gamepad N5110 mbed

Committer:
hongyunAHN
Date:
Wed May 03 22:37:17 2017 +0000
Revision:
0:ffd6b3f45a8c
copy

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hongyunAHN 0:ffd6b3f45a8c 1
hongyunAHN 0:ffd6b3f45a8c 2 #include "mbed.h"
hongyunAHN 0:ffd6b3f45a8c 3 #include "Gamepad.h"
hongyunAHN 0:ffd6b3f45a8c 4 #include "N5110.h"
hongyunAHN 0:ffd6b3f45a8c 5 #include "Background.h"
hongyunAHN 0:ffd6b3f45a8c 6
hongyunAHN 0:ffd6b3f45a8c 7
hongyunAHN 0:ffd6b3f45a8c 8
hongyunAHN 0:ffd6b3f45a8c 9 struct UserInput {
hongyunAHN 0:ffd6b3f45a8c 10 Direction d;
hongyunAHN 0:ffd6b3f45a8c 11 float mag;
hongyunAHN 0:ffd6b3f45a8c 12 };
hongyunAHN 0:ffd6b3f45a8c 13
hongyunAHN 0:ffd6b3f45a8c 14 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
hongyunAHN 0:ffd6b3f45a8c 15 Gamepad pad;
hongyunAHN 0:ffd6b3f45a8c 16 Background back;
hongyunAHN 0:ffd6b3f45a8c 17
hongyunAHN 0:ffd6b3f45a8c 18 void init();
hongyunAHN 0:ffd6b3f45a8c 19 void update_game(UserInput input);
hongyunAHN 0:ffd6b3f45a8c 20 void render();
hongyunAHN 0:ffd6b3f45a8c 21 void welcome();
hongyunAHN 0:ffd6b3f45a8c 22
hongyunAHN 0:ffd6b3f45a8c 23 int main()
hongyunAHN 0:ffd6b3f45a8c 24 {
hongyunAHN 0:ffd6b3f45a8c 25 int fps = 8;
hongyunAHN 0:ffd6b3f45a8c 26
hongyunAHN 0:ffd6b3f45a8c 27 init();
hongyunAHN 0:ffd6b3f45a8c 28 welcome();
hongyunAHN 0:ffd6b3f45a8c 29
hongyunAHN 0:ffd6b3f45a8c 30 render();
hongyunAHN 0:ffd6b3f45a8c 31 wait(1.0f/fps);
hongyunAHN 0:ffd6b3f45a8c 32
hongyunAHN 0:ffd6b3f45a8c 33
hongyunAHN 0:ffd6b3f45a8c 34 while (1) {
hongyunAHN 0:ffd6b3f45a8c 35 back.read_input(pad);
hongyunAHN 0:ffd6b3f45a8c 36 back.update(pad,lcd);
hongyunAHN 0:ffd6b3f45a8c 37 render();
hongyunAHN 0:ffd6b3f45a8c 38 wait(1.0f/fps);
hongyunAHN 0:ffd6b3f45a8c 39 }
hongyunAHN 0:ffd6b3f45a8c 40 }
hongyunAHN 0:ffd6b3f45a8c 41
hongyunAHN 0:ffd6b3f45a8c 42 void init()
hongyunAHN 0:ffd6b3f45a8c 43 {
hongyunAHN 0:ffd6b3f45a8c 44 lcd.init();
hongyunAHN 0:ffd6b3f45a8c 45 pad.init();
hongyunAHN 0:ffd6b3f45a8c 46
hongyunAHN 0:ffd6b3f45a8c 47 back.init();
hongyunAHN 0:ffd6b3f45a8c 48
hongyunAHN 0:ffd6b3f45a8c 49 }
hongyunAHN 0:ffd6b3f45a8c 50
hongyunAHN 0:ffd6b3f45a8c 51 void render()
hongyunAHN 0:ffd6b3f45a8c 52 {
hongyunAHN 0:ffd6b3f45a8c 53
hongyunAHN 0:ffd6b3f45a8c 54 lcd.clear();
hongyunAHN 0:ffd6b3f45a8c 55 back.draw(lcd);
hongyunAHN 0:ffd6b3f45a8c 56 lcd.refresh();
hongyunAHN 0:ffd6b3f45a8c 57 }
hongyunAHN 0:ffd6b3f45a8c 58
hongyunAHN 0:ffd6b3f45a8c 59 void welcome() {
hongyunAHN 0:ffd6b3f45a8c 60
hongyunAHN 0:ffd6b3f45a8c 61 lcd.printString(" MAZE ",0,2);
hongyunAHN 0:ffd6b3f45a8c 62 lcd.printString(" Press Start ",0,5);
hongyunAHN 0:ffd6b3f45a8c 63 lcd.refresh();
hongyunAHN 0:ffd6b3f45a8c 64
hongyunAHN 0:ffd6b3f45a8c 65
hongyunAHN 0:ffd6b3f45a8c 66 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
hongyunAHN 0:ffd6b3f45a8c 67 pad.leds_on();
hongyunAHN 0:ffd6b3f45a8c 68 wait(0.3);
hongyunAHN 0:ffd6b3f45a8c 69 pad.leds_off();
hongyunAHN 0:ffd6b3f45a8c 70 wait(0.2);
hongyunAHN 0:ffd6b3f45a8c 71 }
hongyunAHN 0:ffd6b3f45a8c 72
hongyunAHN 0:ffd6b3f45a8c 73 }