]> git.seodisparate.com - RockPaperScissorsDuel/commitdiff
Add anim_model_grow
authorStephen Seo <seo.disparate@gmail.com>
Tue, 17 Jan 2023 05:23:55 +0000 (14:23 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Tue, 17 Jan 2023 05:23:55 +0000 (14:23 +0900)
CMakeLists.txt
src/3d/anim_model_grow.cc [new file with mode: 0644]
src/3d/anim_model_grow.h [new file with mode: 0644]
src/constants.h
wasm_build/Makefile

index 44b51f687168d72bdff82b67e6892d92ea2422f8..f117512116038587309def89c6c675cf87c6afa9 100644 (file)
@@ -28,6 +28,7 @@ set(RPSDuelNative_SOURCES
     "${CMAKE_CURRENT_SOURCE_DIR}/src/3d/anim_concurrent.cc"
     "${CMAKE_CURRENT_SOURCE_DIR}/src/3d/anim_sequence.cc"
     "${CMAKE_CURRENT_SOURCE_DIR}/src/3d/anim_model_shrink.cc"
+    "${CMAKE_CURRENT_SOURCE_DIR}/src/3d/anim_model_grow.cc"
 )
 
 set(RPSDuelNative_HEADERS
@@ -44,6 +45,7 @@ set(RPSDuelNative_HEADERS
     "${CMAKE_CURRENT_SOURCE_DIR}/src/3d/anims.h"
     "${CMAKE_CURRENT_SOURCE_DIR}/src/3d/anim_sequence.h"
     "${CMAKE_CURRENT_SOURCE_DIR}/src/3d/anim_model_shrink.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/src/3d/anim_model_grow.h"
 )
 
 add_executable(RPSDuelNative ${RPSDuelNative_SOURCES})
diff --git a/src/3d/anim_model_grow.cc b/src/3d/anim_model_grow.cc
new file mode 100644 (file)
index 0000000..78e776d
--- /dev/null
@@ -0,0 +1,22 @@
+#include "anim_model_grow.h"
+
+// third party includes
+#include <raylib.h>
+
+// local includes
+#include "../constants.h"
+#include "a3f_conv.h"
+
+AnimModelGrow::AnimModelGrow(Model *model, A3F pos)
+    : Anims(model), pos(pos), timer(MODEL_GROW_TIME) {}
+
+AnimModelGrow::~AnimModelGrow() {}
+
+bool AnimModelGrow::is_done() { return timer <= 0.0F; }
+
+void AnimModelGrow::do_update(float dt) { timer -= dt; }
+
+void AnimModelGrow::do_draw() {
+  DrawModel(*model, A3FToRV3(pos),
+            timer >= 0.0F ? (1.0F - timer / MODEL_GROW_TIME) : 1.0F, WHITE);
+}
diff --git a/src/3d/anim_model_grow.h b/src/3d/anim_model_grow.h
new file mode 100644 (file)
index 0000000..bd97b28
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef ROCK_PAPER_SCISSORS_DUEL_3D_ANIM_MODEL_GROW_H_
+#define ROCK_PAPER_SCISSORS_DUEL_3D_ANIM_MODEL_GROW_H_
+
+#include "a3f.h"
+#include "anims.h"
+
+class AnimModelGrow : public Anims {
+ public:
+  AnimModelGrow(Model *model, A3F pos);
+  ~AnimModelGrow() override;
+
+  bool is_done() override;
+
+  void do_update(float dt) override;
+  void do_draw() override;
+
+ private:
+  A3F pos;
+  float timer;
+};
+
+#endif
index c7b654ad752cae30b4315b7fce78269940ac988e..9412436f1a5582cfe39c37cd7bd9d298462cde8a 100644 (file)
@@ -78,5 +78,6 @@ constexpr float QM_ANGLE_TIMER_MAX = 5.0F;
 constexpr float QM_Y_TIMER_MAX = 3.5F;
 
 constexpr float MODEL_SHRINK_TIME = 1.0F;
+constexpr float MODEL_GROW_TIME = 1.0F;
 
 #endif
index 789c57917f9525769e458f52298ee928db21955b..bf14251665c77338d0094fd82a082b637c2fcae2 100644 (file)
@@ -17,7 +17,8 @@ SOURCES = \
                ../src/3d/qm.cc \
                ../src/3d/anim_concurrent.cc \
                ../src/3d/anim_sequence.cc \
-               ../src/3d/anim_model_shrink.cc
+               ../src/3d/anim_model_shrink.cc \
+               ../src/3d/anim_model_grow.cc
 
 HEADERS = \
                ../src/constants.h \
@@ -33,7 +34,8 @@ HEADERS = \
                ../src/3d/anims.h \
                ../src/3d/anim_concurrent.h \
                ../src/3d/anim_sequence.h \
-               ../src/3d/anim_model_shrink.h
+               ../src/3d/anim_model_shrink.h \
+               ../src/3d/anim_model_grow.h
 
 CXX = source ${HOME}/git/emsdk/emsdk_env.sh && em++