void AnimModelStill::do_update(float dt) { timer -= dt; }
void AnimModelStill::do_draw() {
- DrawModel(*model, A3FToRV3(pos), 1.0F, A4CToC(color));
+ if (model) {
+ DrawModel(*model, A3FToRV3(pos), 1.0F, A4CToC(color));
+ }
}
bool AnimModelStill::is_done_impl() { return timer <= 0.0F; }
p2_model, A3F{score * 2.0F + 1.0F, 0.0F, 0.0F},
A4C{200, 200, 255, 255}));
} else {
- newAnim->push_anim(std::make_unique<AnimModelShrink>(
- p1_model, A3F{score * 2.0F - 1.0F, 0.0F, 0.0F},
- A4C{255, 200, 200, 255}));
- newAnim->push_anim(std::make_unique<AnimModelShrink>(
- p2_model, A3F{score * 2.0F + 1.0F, 0.0F, 0.0F},
- A4C{200, 200, 255, 255}));
+ newAnim->push_anim(std::make_unique<AnimFalling2D>(
+ A3F{p1_pos.x, p1_pos.y, 0.0F}, A4C{255, 200, 200, 255}, &spriteSheet,
+ p1_dims, false, &deferred_2d_draw_map));
+ newAnim->push_anim(std::make_unique<AnimFalling2D>(
+ A3F{p2_pos.x, p2_pos.y, 0.0F}, A4C{200, 200, 255, 255}, &spriteSheet,
+ p2_dims, true, &deferred_2d_draw_map));
+ newAnim->push_anim(std::make_unique<AnimModelStill>(
+ nullptr, A3F{0.0F, 0.0F, 0.0F}, A4C{255, 255, 255, 255},
+ MODEL_STILL_FALLING_WAIT_TIME));
}
using DataT = std::tuple<int *, int>;
constexpr float MODEL_ATTACK_ANGLE_START = 0.0F;
constexpr float MODEL_ATTACK_ANGLE_END = 90.0F;
-constexpr float MODEL_FALLING_2D_DX = 80.0F;
-constexpr float MODEL_FALLING_2D_DY = -30.0F;
-constexpr float MODEL_FALLING_2D_DDY = 150.0F;
+constexpr float MODEL_FALLING_2D_DX = 90.0F;
+constexpr float MODEL_FALLING_2D_DY = -40.0F;
+constexpr float MODEL_FALLING_2D_DDY = 180.0F;
constexpr float MODEL_FALLING_2D_DA = 270.0F;
+constexpr float MODEL_STILL_FALLING_WAIT_TIME = 0.5F;
+
#endif