diff options
author | JAROWMR <jarorutjes07@gmail.com> | 2024-12-28 16:22:58 +0100 |
---|---|---|
committer | JAROWMR <jarorutjes07@gmail.com> | 2024-12-28 16:22:58 +0100 |
commit | 26d66b7a73ac8d172d342be03bd75bd5bea221e1 (patch) | |
tree | 8814afa7859bf7d142b475acec4432e254e204c8 /game/coins/CoinSubScene.cpp | |
parent | 6a3063e6012bae44457b668ce48c48b8af90a95d (diff) |
coin system
Diffstat (limited to 'game/coins/CoinSubScene.cpp')
-rw-r--r-- | game/coins/CoinSubScene.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/game/coins/CoinSubScene.cpp b/game/coins/CoinSubScene.cpp new file mode 100644 index 0000000..12ddb7a --- /dev/null +++ b/game/coins/CoinSubScene.cpp @@ -0,0 +1,35 @@ +#include "CoinSubScene.h" +#include "api/Animator.h" +#include "api/CircleCollider.h" +#include "api/Rigidbody.h" +#include "api/Scene.h" +#include "api/AudioSource.h" +#include <concepts> + +using namespace crepe; +using namespace std; + +int CoinSubScene::create(Scene & scn){ + vec2 size = {20, 20}; + + static int coin_counter = 0; + std::string unique_name = "coin_" + std::to_string(coin_counter++); + + + GameObject coin = scn.new_object(unique_name.c_str(),"coin",vec2{0,0},0,1); + coin.add_component<Rigidbody>(Rigidbody::Data{}); + coin.add_component<CircleCollider>(size.x / 2).active = false; + crepe::OptionalRef<crepe::Sprite> coin_sprite = coin.add_component<Sprite>(Asset{"asset/coin/coin1_TVOS.png"}, Sprite::Data{ + .sorting_in_layer = 100, + .order_in_layer = 100, + .size = size, + }); + // coin_sprite->active = false; + coin.add_component<Animator>(coin_sprite, ivec2{32, 32}, uvec2{8, 1}, + Animator::Data{ + .fps = 15, + .looping = true, + }); + coin.add_component<AudioSource>(Asset{"asset/sfx/coin_pickup_1.ogg"}); + return coin_counter; +} |