Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@6:dce38fe4e092, 2020-04-28 (annotated)
- Committer:
- el19zf
- Date:
- Tue Apr 28 15:54:41 2020 +0000
- Revision:
- 6:dce38fe4e092
- Parent:
- 5:6774b7272e85
- Child:
- 7:c49f3d3b672f
add ticker to increase shots along with time
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| eencae | 0:b7f1f47bb26a | 1 | /* | 
| eencae | 0:b7f1f47bb26a | 2 | ELEC2645 Embedded Systems Project | 
| eencae | 0:b7f1f47bb26a | 3 | School of Electronic & Electrical Engineering | 
| eencae | 0:b7f1f47bb26a | 4 | University of Leeds | 
| eencae | 0:b7f1f47bb26a | 5 | 2019/20 | 
| eencae | 0:b7f1f47bb26a | 6 | |
| el19zf | 1:b133934e0d45 | 7 | Name:Zeyu Feng | 
| el19zf | 1:b133934e0d45 | 8 | Username:el19zf | 
| el19zf | 1:b133934e0d45 | 9 | Student ID Number:201377605 | 
| el19zf | 1:b133934e0d45 | 10 | Date:11/3/2020 | 
| eencae | 0:b7f1f47bb26a | 11 | */ | 
| eencae | 0:b7f1f47bb26a | 12 | |
| eencae | 0:b7f1f47bb26a | 13 | // includes | 
| eencae | 0:b7f1f47bb26a | 14 | #include "mbed.h" | 
| eencae | 0:b7f1f47bb26a | 15 | #include "Gamepad.h" | 
| eencae | 0:b7f1f47bb26a | 16 | #include "N5110.h" | 
| el19zf | 2:67b51ee7fc34 | 17 | #include "People.h" | 
| el19zf | 3:b8fbaefc496c | 18 | #include "PeopleEngine.h" | 
| el19zf | 4:b12a49f0b730 | 19 | #include "shot.h" | 
| eencae | 0:b7f1f47bb26a | 20 | |
| el19zf | 6:dce38fe4e092 | 21 | |
| eencae | 0:b7f1f47bb26a | 22 | // objects | 
| eencae | 0:b7f1f47bb26a | 23 | Gamepad pad; | 
| eencae | 0:b7f1f47bb26a | 24 | N5110 lcd; | 
| el19zf | 3:b8fbaefc496c | 25 | PeopleEngine engine; | 
| el19zf | 4:b12a49f0b730 | 26 | shot shot; | 
| el19zf | 4:b12a49f0b730 | 27 | |
| el19zf | 6:dce38fe4e092 | 28 | //flag and triggers | 
| el19zf | 6:dce38fe4e092 | 29 | Ticker ticker; | 
| el19zf | 6:dce38fe4e092 | 30 | volatile int timer_flag = 0; | 
| el19zf | 6:dce38fe4e092 | 31 | |
| el19zf | 6:dce38fe4e092 | 32 | // functions | 
| el19zf | 6:dce38fe4e092 | 33 | void flip() { | 
| el19zf | 6:dce38fe4e092 | 34 | timer_flag = 1; | 
| el19zf | 6:dce38fe4e092 | 35 | } | 
| el19zf | 6:dce38fe4e092 | 36 | void init(); | 
| el19zf | 6:dce38fe4e092 | 37 | void control_people(); | 
| el19zf | 6:dce38fe4e092 | 38 | void shot_update(); | 
| el19zf | 6:dce38fe4e092 | 39 | |
| eencae | 0:b7f1f47bb26a | 40 | |
| eencae | 0:b7f1f47bb26a | 41 | int main() | 
| eencae | 0:b7f1f47bb26a | 42 | { | 
| el19zf | 3:b8fbaefc496c | 43 | //initial | 
| el19zf | 6:dce38fe4e092 | 44 | init(); | 
| el19zf | 6:dce38fe4e092 | 45 | |
| el19zf | 6:dce38fe4e092 | 46 | ticker.attach(&flip,5); | 
| el19zf | 6:dce38fe4e092 | 47 | |
| el19zf | 6:dce38fe4e092 | 48 | //a infinite loop to control position of the people, update the game state | 
| el19zf | 6:dce38fe4e092 | 49 | while(1) { | 
| el19zf | 6:dce38fe4e092 | 50 | if(timer_flag == 1){ | 
| el19zf | 6:dce38fe4e092 | 51 | timer_flag = 0; | 
| el19zf | 6:dce38fe4e092 | 52 | if(shot._size < 30) | 
| el19zf | 6:dce38fe4e092 | 53 | shot._size = shot._size + 2; | 
| el19zf | 6:dce38fe4e092 | 54 | } | 
| el19zf | 6:dce38fe4e092 | 55 | lcd.clear(); | 
| el19zf | 6:dce38fe4e092 | 56 | // people | 
| el19zf | 6:dce38fe4e092 | 57 | control_people(); | 
| el19zf | 6:dce38fe4e092 | 58 | shot_update(); | 
| el19zf | 6:dce38fe4e092 | 59 | lcd.refresh(); | 
| el19zf | 6:dce38fe4e092 | 60 | //printf("shot refresh\n"); | 
| el19zf | 6:dce38fe4e092 | 61 | //printf("size = %d\n",shot._size); | 
| el19zf | 6:dce38fe4e092 | 62 | wait_ms(100);//fps = 10 | 
| el19zf | 6:dce38fe4e092 | 63 | |
| el19zf | 6:dce38fe4e092 | 64 | } | 
| el19zf | 6:dce38fe4e092 | 65 | |
| el19zf | 6:dce38fe4e092 | 66 | } | 
| el19zf | 6:dce38fe4e092 | 67 | |
| el19zf | 6:dce38fe4e092 | 68 | |
| el19zf | 6:dce38fe4e092 | 69 | void init() | 
| el19zf | 6:dce38fe4e092 | 70 | { | 
| el19zf | 2:67b51ee7fc34 | 71 | lcd.init(); | 
| el19zf | 2:67b51ee7fc34 | 72 | lcd.setContrast(0.5); | 
| el19zf | 3:b8fbaefc496c | 73 | engine.init(); | 
| el19zf | 2:67b51ee7fc34 | 74 | pad.init(); | 
| el19zf | 2:67b51ee7fc34 | 75 | lcd.refresh(); | 
| el19zf | 6:dce38fe4e092 | 76 | shot.init(); | 
| eencae | 0:b7f1f47bb26a | 77 | } | 
| eencae | 0:b7f1f47bb26a | 78 | |
| el19zf | 6:dce38fe4e092 | 79 | void control_people() | 
| el19zf | 6:dce38fe4e092 | 80 | { | 
| el19zf | 6:dce38fe4e092 | 81 | engine.read_input(pad); | 
| el19zf | 6:dce38fe4e092 | 82 | engine.update(); | 
| el19zf | 6:dce38fe4e092 | 83 | engine.draw(lcd); | 
| el19zf | 6:dce38fe4e092 | 84 | } | 
| el19zf | 6:dce38fe4e092 | 85 | void shot_update() | 
| el19zf | 6:dce38fe4e092 | 86 | { | 
| el19zf | 6:dce38fe4e092 | 87 | shot.update(); | 
| el19zf | 6:dce38fe4e092 | 88 | shot.delete_shot(); | 
| el19zf | 6:dce38fe4e092 | 89 | shot.gen_shot(); | 
| el19zf | 6:dce38fe4e092 | 90 | shot.draw(lcd); | 
| el19zf | 6:dce38fe4e092 | 91 | } | 
| el19zf | 6:dce38fe4e092 | 92 |