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@82:3211b31e9421, 2020-05-25 (annotated)
- Committer:
- evanso
- Date:
- Mon May 25 18:39:51 2020 +0000
- Revision:
- 82:3211b31e9421
- Parent:
- 36:27aa597db3d2
- Child:
- 85:87bc28b151d8
Made commenting and formatting of code more consistent.
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 | 82:3211b31e9421 | 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 | 82:3211b31e9421 | 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 | 82:3211b31e9421 | 47 | int Explosion::get_explosion_radius() { |
evanso | 25:70b55f5bfc87 | 48 | return explosion_radius_; |
evanso | 25:70b55f5bfc87 | 49 | } |