#include "anim_falling_2d.h"
// local includes
-#include <raylib.h>
-
#include "../constants.h"
+#include "../ems.h"
#include "arrays_conv.h"
#include "deferred_2d_draw.h"
AnimFalling2D::AnimFalling2D(A3F pos, A4C color, Texture2D *texture, A4F txywh,
bool is_going_right, Deferred2DMap *map)
- : Anims(nullptr, pos, color),
- map(map),
- wh{txywh.at(2), txywh.at(3)},
- dx(is_going_right ? MODEL_FALLING_2D_DX : -MODEL_FALLING_2D_DX),
- dy(MODEL_FALLING_2D_DY),
- ddy(MODEL_FALLING_2D_DDY) {
+ : Anims(nullptr, pos, color), map(map), wh{txywh.at(2), txywh.at(3)} {
Deferred2DDraw def(texture, txywh, A2F{pos.at(0), pos.at(1)},
A2F{txywh.at(2) / 2.0F, txywh.at(3) / 2.0F}, color, 0.0F,
is_going_right);
#include "deferred_2d_draw.h"
// local includes
-#include <raylib.h>
-
#include "../constants.h"
+#include "../ems.h"
#include "arrays_conv.h"
int Deferred2DDraw::id_counter = 0;
origin(origin),
color(color),
angle(angle),
- dx(is_going_right ? MODEL_FALLING_2D_DX : -MODEL_FALLING_2D_DX),
- dy(MODEL_FALLING_2D_DY),
+ dx(is_going_right ? (MODEL_FALLING_2D_DX * call_js_get_random())
+ : (-MODEL_FALLING_2D_DX * call_js_get_random())),
+ dy(MODEL_FALLING_2D_DY * 2.0F * call_js_get_random() -
+ MODEL_FALLING_2D_DY),
ddy(MODEL_FALLING_2D_DDY),
id(id_counter++),
activated(false),
},
ptr);
seqAnim->push_anim(std::move(anim_still));
- seqAnim->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));
+
+ auto falling_anims = std::make_unique<AnimConcurrent>(nullptr);
+ for (int i = 0; i < ANIM_FALLING_AMT; ++i) {
+ falling_anims->push_anim(std::make_unique<AnimFalling2D>(
+ A3F{p1_pos.x, p1_pos.y, 0.0F}, A4C{255, 200, 200, 255},
+ &spriteSheet, p1_dims, i >= ANIM_FALLING_OPP_THRESHOLD,
+ &deferred_2d_draw_map));
+ }
+ seqAnim->push_anim(std::move(falling_anims));
+
newAnim->push_anim(std::make_unique<AnimModelAttack>(
p2_model, A3F{score * 2.0F + 1.0F, 0.0F, 0.0F},
A4C{200, 200, 255, 255}, false));
},
ptr);
seqAnim->push_anim(std::move(anim_still));
- seqAnim->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));
+
+ auto falling_anims = std::make_unique<AnimConcurrent>(nullptr);
+ for (int i = 0; i < ANIM_FALLING_AMT; ++i) {
+ falling_anims->push_anim(std::make_unique<AnimFalling2D>(
+ A3F{p2_pos.x, p2_pos.y, 0.0F}, A4C{255, 200, 200, 255},
+ &spriteSheet, p2_dims, i < ANIM_FALLING_OPP_THRESHOLD,
+ &deferred_2d_draw_map));
+ }
+ seqAnim->push_anim(std::move(falling_anims));
} break;
case 0:
default: