diff options
-rw-r--r-- | src/example/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/example/ForestParallaxScript.cpp | 28 | ||||
-rw-r--r-- | src/example/ForestParallaxScript.h | 15 | ||||
-rw-r--r-- | src/example/ForestSubScene.cpp | 32 |
4 files changed, 46 insertions, 31 deletions
diff --git a/src/example/CMakeLists.txt b/src/example/CMakeLists.txt index f1d165a..cd7407f 100644 --- a/src/example/CMakeLists.txt +++ b/src/example/CMakeLists.txt @@ -2,6 +2,7 @@ set(GAME_HEADERS AquariumSubScene.h BackgroundSubScene.h ForestSubScene.h + ForestParallaxScript.h HallwaySubScene.h StartSubScene.h GameScene.h @@ -14,6 +15,7 @@ set(GAME_SOURCES AquariumSubScene.cpp BackgroundSubScene.cpp ForestSubScene.cpp + ForestParallaxScript.cpp HallwaySubScene.cpp StartSubScene.cpp GameScene.cpp diff --git a/src/example/ForestParallaxScript.cpp b/src/example/ForestParallaxScript.cpp new file mode 100644 index 0000000..782cdf0 --- /dev/null +++ b/src/example/ForestParallaxScript.cpp @@ -0,0 +1,28 @@ +#include "ForestParallaxScript.h" + +using namespace crepe; +using namespace std; + +ForestParallaxScript::ForestParallaxScript(float begin_x, float end_x, + std::string unique_bg_name) + : begin_x(begin_x), + end_x(end_x), + name(unique_bg_name) {} + +void ForestParallaxScript::update() { + RefVector<Transform> vec_2 + = this->get_components_by_name<Transform>("forest_bg_2_" + name); + RefVector<Transform> vec_3 + = this->get_components_by_name<Transform>("forest_bg_3_" + name); + + for (Transform & t : vec_2) { + if (t.position.x > end_x - 400) { + t.position.x = begin_x - 400; + } + } + for (Transform & t : vec_3) { + if (t.position.x > end_x - 400) { + t.position.x = begin_x - 400; + } + } +} diff --git a/src/example/ForestParallaxScript.h b/src/example/ForestParallaxScript.h new file mode 100644 index 0000000..39b7ecb --- /dev/null +++ b/src/example/ForestParallaxScript.h @@ -0,0 +1,15 @@ +#pragma once + +#include <crepe/api/Script.h> + +class ForestParallaxScript : public crepe::Script { +public: + ForestParallaxScript(float begin_x, float end_x, std::string unique_bg_name); + + void update(); + +private: + const float begin_x; + const float end_x; + const std::string name; +}; diff --git a/src/example/ForestSubScene.cpp b/src/example/ForestSubScene.cpp index 713d95f..9be875d 100644 --- a/src/example/ForestSubScene.cpp +++ b/src/example/ForestSubScene.cpp @@ -1,4 +1,5 @@ #include "ForestSubScene.h" +#include "ForestParallaxScript.h" #include <crepe/api/Animator.h> #include <crepe/api/BehaviorScript.h> @@ -11,37 +12,6 @@ using namespace crepe; using namespace std; -class ForestParallaxScript : public Script { -public: - ForestParallaxScript(float begin_x, float end_x, std::string unique_bg_name) - : begin_x(begin_x), - end_x(end_x), - name(unique_bg_name) {} - - void update() { - RefVector<Transform> vec_2 - = this->get_components_by_name<Transform>("forest_bg_2_" + name); - RefVector<Transform> vec_3 - = this->get_components_by_name<Transform>("forest_bg_3_" + name); - - for (Transform & t : vec_2) { - if (t.position.x > end_x - 400) { - t.position.x = begin_x - 400; - } - } - for (Transform & t : vec_3) { - if (t.position.x > end_x - 400) { - t.position.x = begin_x - 400; - } - } - } - -private: - const float begin_x; - const float end_x; - const std::string name; -}; - float ForestSubScene::create(Scene & scn, float begin_x, std::string unique_bg_name) { GameObject script = scn.new_object("forest_script", "background"); script.add_component<BehaviorScript>().set_script<ForestParallaxScript>( |