-
-Particles::~Particles()
-{
- // free particles
- for(std::vector<Particle*>::iterator i = particles.begin();
- i < particles.end(); i++)
- delete (*i);
-}
-
-void
-Particles::update(float elapsed_time)
-{
- Vector camera = Sector::current()->camera->get_translation();
-
- // update particles
- for(std::vector<Particle*>::iterator i = particles.begin();
- i != particles.end(); ) {
- (*i)->pos.x += (*i)->vel.x * elapsed_time;
- (*i)->pos.y += (*i)->vel.y * elapsed_time;
-
- (*i)->vel.x += accel.x * elapsed_time;
- (*i)->vel.y += accel.y * elapsed_time;
-
- if((*i)->pos.x < camera.x || (*i)->pos.x > SCREEN_WIDTH + camera.x ||
- (*i)->pos.y < camera.y || (*i)->pos.y > SCREEN_HEIGHT + camera.y) {
- delete (*i);
- i = particles.erase(i);
- } else {
- ++i;
- }
- }
-
- if((timer.check() && !live_forever) || particles.size() == 0)
- remove_me();
-}
-
-void
-Particles::draw(DrawingContext& context)
-{
- // draw particles
- for(std::vector<Particle*>::iterator i = particles.begin();
- i != particles.end(); i++) {
- context.draw_filled_rect((*i)->pos, Vector(size,size), color,drawing_layer);
- }
-}
-
-void load_object_gfx()
-{
-#if 0
- img_trampoline = sprite_manager->load("trampoline");
- img_trampoline->start_animation(0);
- img_flying_platform = sprite_manager->load("flying_platform");
-#endif
- img_smoke_cloud = sprite_manager->create("stomp");
-}
-
-void free_object_gfx()
-{
- delete img_smoke_cloud;
-}
-