copy
Dependencies: Gamepad N5110 mbed
main.cpp@0:ffd6b3f45a8c, 2017-05-03 (annotated)
- Committer:
- hongyunAHN
- Date:
- Wed May 03 22:37:17 2017 +0000
- Revision:
- 0:ffd6b3f45a8c
copy
Who changed what in which revision?
User | Revision | Line number | New 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 | } |