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.
Explosion/Explosion.cpp@36:27aa597db3d2, 2020-05-15 (annotated)
- Committer:
- evanso
- Date:
- Fri May 15 16:31:25 2020 +0000
- Revision:
- 36:27aa597db3d2
- Parent:
- 29:e96d91f1d39c
- Child:
- 82:3211b31e9421
Created Parent Classes folder to hold all of the parent class files. Shortened function lengths in Game Engine class and organised function definitions.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| evanso | 25:70b55f5bfc87 | 1 | #include "Explosion.h" |
| evanso | 25:70b55f5bfc87 | 2 | |
| evanso | 26:1a7056eb3253 | 3 | // Defining animation states for explotion FSM |
| evanso | 25:70b55f5bfc87 | 4 | Animation animation_fsm[2] = { |
| evanso | 25:70b55f5bfc87 | 5 | {false, true, FILL_WHITE, FILL_BLACK}, |
| evanso | 27:8bb2bd97c319 | 6 | {true, false, FILL_TRANSPARENT, FILL_WHITE}, |
| evanso | 25:70b55f5bfc87 | 7 | }; |
| evanso | 25:70b55f5bfc87 | 8 | |
| evanso | 25:70b55f5bfc87 | 9 | Explosion::Explosion() { |
| evanso | 25:70b55f5bfc87 | 10 | |
| evanso | 25:70b55f5bfc87 | 11 | } |
| evanso | 25:70b55f5bfc87 | 12 | |
| evanso | 25:70b55f5bfc87 | 13 | Explosion::~Explosion() { |
| evanso | 25:70b55f5bfc87 | 14 | |
| evanso | 25:70b55f5bfc87 | 15 | } |
| evanso | 25:70b55f5bfc87 | 16 | |
| evanso | 29:e96d91f1d39c | 17 | void Explosion::init(Vector2D destroyed_position) { |
| evanso | 36:27aa597db3d2 | 18 | // Assign values to variables |
| evanso | 29:e96d91f1d39c | 19 | position_x_ = destroyed_position.x + 3; |
| evanso | 29:e96d91f1d39c | 20 | position_y_ = destroyed_position.y + 3; |
| evanso | 25:70b55f5bfc87 | 21 | fsm_counter_ = 0; |
| evanso | 25:70b55f5bfc87 | 22 | explosion_radius_ = 4; |
| evanso | 25:70b55f5bfc87 | 23 | draw_counter = 0; |
| evanso | 25:70b55f5bfc87 | 24 | } |
| evanso | 25:70b55f5bfc87 | 25 | |
| evanso | 25:70b55f5bfc87 | 26 | void Explosion::draw_explosion(N5110 &lcd) { |
| evanso | 26:1a7056eb3253 | 27 | // Draws each explotion frame depending on state |
| evanso | 36:27aa597db3d2 | 28 | // Draw circle one |
| evanso | 25:70b55f5bfc87 | 29 | if(animation_fsm[fsm_counter_].draw_circle_one){ |
| evanso | 27:8bb2bd97c319 | 30 | lcd.drawCircle(position_x_, position_y_,explosion_radius_ + 1, |
| evanso | 27:8bb2bd97c319 | 31 | animation_fsm[fsm_counter_].circle_one); |
| evanso | 25:70b55f5bfc87 | 32 | } |
| evanso | 36:27aa597db3d2 | 33 | // Draw circle two |
| evanso | 25:70b55f5bfc87 | 34 | if(animation_fsm[fsm_counter_].draw_circle_two){ |
| evanso | 28:a5958497d5ce | 35 | lcd.drawCircle(position_x_, position_y_,(explosion_radius_ - 2), |
| evanso | 28:a5958497d5ce | 36 | animation_fsm[fsm_counter_].circle_two); |
| evanso | 25:70b55f5bfc87 | 37 | } |
| evanso | 25:70b55f5bfc87 | 38 | |
| evanso | 25:70b55f5bfc87 | 39 | // Slows down annimation change time, so eplosion animation is longer |
| evanso | 25:70b55f5bfc87 | 40 | if (draw_counter%2 == 0) { |
| evanso | 25:70b55f5bfc87 | 41 | explosion_radius_++; |
| evanso | 25:70b55f5bfc87 | 42 | fsm_counter_ = !fsm_counter_; |
| evanso | 25:70b55f5bfc87 | 43 | } |
| evanso | 25:70b55f5bfc87 | 44 | draw_counter++; |
| evanso | 25:70b55f5bfc87 | 45 | } |
| evanso | 25:70b55f5bfc87 | 46 | |
| evanso | 25:70b55f5bfc87 | 47 | int Explosion::get_explosion_radius(){ |
| evanso | 25:70b55f5bfc87 | 48 | return explosion_radius_; |
| evanso | 25:70b55f5bfc87 | 49 | } |