From 90836d787090f07207d3a59fe6af735131a01faf Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Tue, 17 Jan 2023 14:23:55 +0900 Subject: [PATCH] Add anim_model_grow --- CMakeLists.txt | 2 ++ src/3d/anim_model_grow.cc | 22 ++++++++++++++++++++++ src/3d/anim_model_grow.h | 22 ++++++++++++++++++++++ src/constants.h | 1 + wasm_build/Makefile | 6 ++++-- 5 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 src/3d/anim_model_grow.cc create mode 100644 src/3d/anim_model_grow.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 44b51f6..f117512 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 index 0000000..78e776d --- /dev/null +++ b/src/3d/anim_model_grow.cc @@ -0,0 +1,22 @@ +#include "anim_model_grow.h" + +// third party includes +#include + +// 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 index 0000000..bd97b28 --- /dev/null +++ b/src/3d/anim_model_grow.h @@ -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 diff --git a/src/constants.h b/src/constants.h index c7b654a..9412436 100644 --- a/src/constants.h +++ b/src/constants.h @@ -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 diff --git a/wasm_build/Makefile b/wasm_build/Makefile index 789c579..bf14251 100644 --- a/wasm_build/Makefile +++ b/wasm_build/Makefile @@ -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++ -- 2.49.0