Skip to content

Commit

Permalink
Generated particles need not have any randomness in either angle or v…
Browse files Browse the repository at this point in the history
…elocity.
  • Loading branch information
LMH0013 committed Nov 29, 2014
1 parent b09b702 commit cd21dc1
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/object/fireworks.cpp
Expand Up @@ -49,7 +49,7 @@ Fireworks::update(float )
//float green = 0.9;
(void) red;
(void) green;
sector->add_object(std::make_shared<Particles>(pos, 0, 360, Vector(140, 140),
sector->add_object(std::make_shared<Particles>(pos, 0, 360, 140, 140,
Vector(0, 0), 45, Color(red, green, 0), 3, 1.3f,
LAYER_FOREGROUND1+1));
SoundManager::current()->play("sounds/fireworks.wav");
Expand Down
6 changes: 4 additions & 2 deletions src/object/particles.cpp
Expand Up @@ -88,8 +88,10 @@ Particles::Particles(const Vector& epicenter, int min_angle, int max_angle,
Particle* particle = new Particle;
particle->pos = epicenter;

float velocity = graphicsRandom.rand(min_initial_velocity, max_initial_velocity);
float angle = graphicsRandom.rand(min_angle, max_angle) * (M_PI / 180); // convert to radians
float velocity = (min_initial_velocity == max_initial_velocity) ? min_initial_velocity :
graphicsRandom.rand(min_initial_velocity, max_initial_velocity);
float angle = (min_angle == max_angle) ? min_angle * (M_PI / 180) :
graphicsRandom.rand(min_angle, max_angle) * (M_PI / 180); // convert to radians
// Note that angle defined as clockwise from vertical (up is zero degrees, right is 90 degrees)
particle->vel.x = (sin(angle)) * velocity;
particle->vel.y = (-cos(angle)) * velocity;
Expand Down

0 comments on commit cd21dc1

Please sign in to comment.