diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-12-22 20:04:33 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-12-22 20:04:33 +0100 |
commit | a600cc55468a6513743ce916aa3da129270c23f0 (patch) | |
tree | 324eb574298b321dcfba69a5a29c59b0cc18f007 /game/prefab/ZapperObject.cpp | |
parent | 73dea702bdedf48a2d2d26e7922b5ee935063cfd (diff) |
more WIP zapper
Diffstat (limited to 'game/prefab/ZapperObject.cpp')
-rw-r--r-- | game/prefab/ZapperObject.cpp | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/game/prefab/ZapperObject.cpp b/game/prefab/ZapperObject.cpp new file mode 100644 index 0000000..2791162 --- /dev/null +++ b/game/prefab/ZapperObject.cpp @@ -0,0 +1,84 @@ +#include "Config.h" +#include "ZapperObject.h" +#include "ZapperScript.h" + +using namespace crepe; + +ZapperObject::ZapperObject(crepe::GameObject && base) + : GameObject(std::move(base)), + sprite { + .orb_start = add_component<Sprite>( + Asset {"asset/obstacles/zapper/orbAnim.png"}, + Sprite::Data { + .sorting_in_layer = SORT_IN_LAY_OBSTACLES, + .order_in_layer = 1, + .size = vec2{0, 1} * SCALE, + .position_offset = {0, 100}, + } + ), + .orb_end = add_component<Sprite>( + sprite.orb_start.source, + Sprite::Data { + .flip = {true, true}, + .sorting_in_layer = SORT_IN_LAY_OBSTACLES, + .order_in_layer = 1, + .size = vec2{0, 1} * SCALE, + .position_offset = {0, -100}, + } + ), + .glow_start = add_component<Sprite>( + Asset {"asset/obstacles/zapper/regular_zappers/glow.png"}, + Sprite::Data { + .sorting_in_layer = SORT_IN_LAY_OBSTACLES, + .order_in_layer = -1, + .size = vec2{2, 2} * SCALE, + .position_offset = {0, 100}, + } + ), + .glow_end = add_component<Sprite>( + sprite.glow_start.source, + Sprite::Data { + .flip = {true, true}, + .sorting_in_layer = SORT_IN_LAY_OBSTACLES, + .order_in_layer = -1, + .size = vec2{2, 2} * SCALE, + .position_offset = {0, -100}, + } + ), + .beam = add_component<Sprite>( + Asset {"asset/obstacles/zapper/regular_zappers/zapEffect.png"}, + Sprite::Data { + .sorting_in_layer = SORT_IN_LAY_OBSTACLES, + .order_in_layer = 0, + .size = vec2{200, 50}, + .angle_offset = 90, + } + ), + }, + animator { + .orb_start = add_component<Animator>( + sprite.orb_start, ivec2(62, 42), uvec2(4, 1), + Animator::Data { + .fps = 10, + .looping = true, + } + ), + .orb_end = add_component<Animator>( + sprite.orb_end, ivec2(62, 42), uvec2(4, 1), + animator.orb_start.data + ), + .glow_start = add_component<Animator>( + sprite.glow_start, ivec2(128, 128), uvec2(4, 4), + Animator::Data { + .fps = 30, + .looping = true, + } + ), + .glow_end = add_component<Animator>( + sprite.glow_end, ivec2(128, 128), uvec2(4, 4), + animator.glow_start.data + ), + }, + controller(add_component<BehaviorScript>().set_script<ZapperScript>(*this)) +{ } + |