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.cpp
00001 #include "Explosion.h" 00002 00003 // Defining animation states for explosion FSM 00004 Animation animation_fsm[2] = { 00005 {false, true, FILL_WHITE, FILL_BLACK}, 00006 {true, false, FILL_TRANSPARENT, FILL_WHITE}, 00007 }; 00008 00009 Explosion::Explosion() { 00010 00011 } 00012 00013 Explosion::~Explosion() { 00014 00015 } 00016 00017 void Explosion::init(Vector2D destroyed_position) { 00018 // Assign values to variables 00019 position_x_ = destroyed_position.x + 3; 00020 position_y_ = destroyed_position.y + 3; 00021 fsm_counter_ = 0; 00022 explosion_radius_ = 4; 00023 draw_counter = 0; 00024 } 00025 00026 void Explosion::draw_explosion(N5110 &lcd) { 00027 // Draws each explosion frame depending on state 00028 // Draw circle one 00029 if (animation_fsm[fsm_counter_].draw_circle_one) { 00030 lcd.drawCircle(position_x_, position_y_,explosion_radius_ + 1, 00031 animation_fsm[fsm_counter_].circle_one); 00032 } 00033 // Draw circle two 00034 if (animation_fsm[fsm_counter_].draw_circle_two) { 00035 lcd.drawCircle(position_x_, position_y_,(explosion_radius_ - 2), 00036 animation_fsm[fsm_counter_].circle_two); 00037 } 00038 00039 // Slows down animation change time, so explosion animation is longer 00040 if (draw_counter%2 == 0) { 00041 explosion_radius_++; 00042 fsm_counter_ = !fsm_counter_; 00043 } 00044 draw_counter++; 00045 } 00046 00047 int Explosion::get_explosion_radius() { 00048 return explosion_radius_; 00049 }
Generated on Fri Aug 5 2022 06:55:07 by
1.7.2