35 std::vector<ecs::Entity> explosionsToRemove;
44 if ((transform ==
nullptr) || (rect ==
nullptr) || (texture ==
nullptr) || (scale ==
nullptr))
49 explosion.current_time += dt;
50 if (explosion.current_time >= explosion.frame_duration)
52 explosion.current_time = 0.0f;
53 explosion.current_frame = (explosion.current_frame + 1) % explosion.total_frames;
55 int frame_x = (explosion.current_frame % explosion.frames_per_row) *
56 static_cast<int>(explosion.frame_width);
57 int frame_y = (explosion.current_frame / explosion.frames_per_row) *
58 static_cast<int>(explosion.frame_height);
60 rect->pos_x =
static_cast<float>(frame_x);
61 rect->pos_y =
static_cast<float>(frame_y);
65 transform->y, scale->x, scale->y,
static_cast<int>(rect->pos_x),
66 static_cast<int>(rect->pos_y), rect->size_x, rect->size_y);
69 explosion.current_lifetime += dt;
70 if (explosion.current_lifetime >= explosion.lifetime)
72 explosionsToRemove.push_back(entity);