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
engine/engine.cpp@5:0a116644cce2, 2018-04-16 (annotated)
- Committer:
- RickYu
- Date:
- Mon Apr 16 09:57:57 2018 +0000
- Revision:
- 5:0a116644cce2
- Parent:
- 4:55d904040636
- Child:
- 6:46d0caedf217
the boom can drop wiz random x-postion
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| RickYu | 2:421fb0670c5c | 1 | #include "engine.h" |
| RickYu | 2:421fb0670c5c | 2 | |
| RickYu | 2:421fb0670c5c | 3 | engine::engine() |
| RickYu | 2:421fb0670c5c | 4 | { |
| RickYu | 2:421fb0670c5c | 5 | |
| RickYu | 2:421fb0670c5c | 6 | } |
| RickYu | 2:421fb0670c5c | 7 | |
| RickYu | 2:421fb0670c5c | 8 | engine::~engine() |
| RickYu | 2:421fb0670c5c | 9 | { |
| RickYu | 2:421fb0670c5c | 10 | |
| RickYu | 2:421fb0670c5c | 11 | } |
| RickYu | 2:421fb0670c5c | 12 | |
| RickYu | 5:0a116644cce2 | 13 | void engine::init(int speed) |
| RickYu | 2:421fb0670c5c | 14 | { |
| RickYu | 2:421fb0670c5c | 15 | // initialise the game parameters |
| RickYu | 2:421fb0670c5c | 16 | _speed = speed; |
| RickYu | 2:421fb0670c5c | 17 | |
| RickYu | 2:421fb0670c5c | 18 | |
| RickYu | 2:421fb0670c5c | 19 | |
| RickYu | 2:421fb0670c5c | 20 | |
| RickYu | 2:421fb0670c5c | 21 | } |
| RickYu | 2:421fb0670c5c | 22 | void engine::draw(N5110 &lcd) |
| RickYu | 2:421fb0670c5c | 23 | { |
| RickYu | 2:421fb0670c5c | 24 | |
| RickYu | 2:421fb0670c5c | 25 | _rect.draw(lcd); |
| RickYu | 3:1a134243e2f0 | 26 | _boom.draw(lcd); |
| RickYu | 2:421fb0670c5c | 27 | |
| RickYu | 2:421fb0670c5c | 28 | |
| RickYu | 2:421fb0670c5c | 29 | } |
| RickYu | 2:421fb0670c5c | 30 | |
| RickYu | 2:421fb0670c5c | 31 | void engine::read_input(Gamepad &pad) |
| RickYu | 2:421fb0670c5c | 32 | { |
| RickYu | 2:421fb0670c5c | 33 | _d = pad.get_direction(); |
| RickYu | 2:421fb0670c5c | 34 | _mag = pad.get_mag(); |
| RickYu | 2:421fb0670c5c | 35 | } |
| RickYu | 2:421fb0670c5c | 36 | |
| RickYu | 2:421fb0670c5c | 37 | |
| RickYu | 2:421fb0670c5c | 38 | void engine::update(Gamepad &pad) |
| RickYu | 2:421fb0670c5c | 39 | { |
| RickYu | 2:421fb0670c5c | 40 | _rect.update(_d,_mag); |
| RickYu | 4:55d904040636 | 41 | _boom.update(); |
| RickYu | 5:0a116644cce2 | 42 | |
| RickYu | 5:0a116644cce2 | 43 | check_boom_collision(pad); |
| RickYu | 5:0a116644cce2 | 44 | check_wall_collision(pad); |
| RickYu | 2:421fb0670c5c | 45 | |
| RickYu | 2:421fb0670c5c | 46 | } |
| RickYu | 2:421fb0670c5c | 47 | |
| RickYu | 5:0a116644cce2 | 48 | void engine::check_wall_collision(Gamepad &pad) |
| RickYu | 5:0a116644cce2 | 49 | { |
| RickYu | 5:0a116644cce2 | 50 | Vector2D boom_pos = _boom.get_pos(); |
| RickYu | 5:0a116644cce2 | 51 | Vector2D rect_pos = _rect.get_pos(); |
| RickYu | 5:0a116644cce2 | 52 | |
| RickYu | 5:0a116644cce2 | 53 | if (boom_pos.y > 48) { |
| RickYu | 5:0a116644cce2 | 54 | |
| RickYu | 5:0a116644cce2 | 55 | boom_pos.y = 0; |
| RickYu | 5:0a116644cce2 | 56 | boom_pos.x = rand()%84; |
| RickYu | 5:0a116644cce2 | 57 | |
| RickYu | 5:0a116644cce2 | 58 | } |
| RickYu | 5:0a116644cce2 | 59 | |
| RickYu | 5:0a116644cce2 | 60 | if (boom_pos.x == 84) { |
| RickYu | 5:0a116644cce2 | 61 | boom_pos.x = 81; |
| RickYu | 5:0a116644cce2 | 62 | } |
| RickYu | 5:0a116644cce2 | 63 | |
| RickYu | 5:0a116644cce2 | 64 | if (boom_pos.x <2){ |
| RickYu | 5:0a116644cce2 | 65 | boom_pos.x = 3; |
| RickYu | 5:0a116644cce2 | 66 | } |
| RickYu | 5:0a116644cce2 | 67 | _boom.set_pos(boom_pos); |
| RickYu | 5:0a116644cce2 | 68 | _rect.set_pos(rect_pos); |
| RickYu | 5:0a116644cce2 | 69 | |
| RickYu | 5:0a116644cce2 | 70 | |
| RickYu | 5:0a116644cce2 | 71 | } |
| RickYu | 5:0a116644cce2 | 72 | void engine::check_boom_collision(Gamepad &pad) |
| RickYu | 5:0a116644cce2 | 73 | { |
| RickYu | 5:0a116644cce2 | 74 | Vector2D boom_pos = _boom.get_pos(); |
| RickYu | 5:0a116644cce2 | 75 | Vector2D rect_pos = _rect.get_pos(); |
| RickYu | 5:0a116644cce2 | 76 | |
| RickYu | 5:0a116644cce2 | 77 | if ( |
| RickYu | 5:0a116644cce2 | 78 | (boom_pos.y+3 == rect_pos.x+3)&& |
| RickYu | 5:0a116644cce2 | 79 | (boom_pos.y+3 == rect_pos.x+4)&& |
| RickYu | 5:0a116644cce2 | 80 | (boom_pos.y+3 == rect_pos.x+5)&& |
| RickYu | 5:0a116644cce2 | 81 | (boom_pos.y+3 == rect_pos.x+6) |
| RickYu | 5:0a116644cce2 | 82 | ) |
| RickYu | 5:0a116644cce2 | 83 | { |
| RickYu | 5:0a116644cce2 | 84 | boom_pos.y = 0; |
| RickYu | 5:0a116644cce2 | 85 | pad.tone(750.0,0.1); |
| RickYu | 5:0a116644cce2 | 86 | } |
| RickYu | 5:0a116644cce2 | 87 | _boom.set_pos(boom_pos); |
| RickYu | 5:0a116644cce2 | 88 | _rect.set_pos(rect_pos); |
| RickYu | 5:0a116644cce2 | 89 | |
| RickYu | 5:0a116644cce2 | 90 | |
| RickYu | 5:0a116644cce2 | 91 | |
| RickYu | 5:0a116644cce2 | 92 | } |
| RickYu | 5:0a116644cce2 | 93 | |
| RickYu | 5:0a116644cce2 | 94 |