diff options
author | Jaro <59013720+JaroWMR@users.noreply.github.com> | 2025-01-08 09:31:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-08 09:31:14 +0100 |
commit | e75ca1c947f3cde19bebf15049732bc069c6e913 (patch) | |
tree | cdaa7a2c06ffc7f41366d4106e16f254e3b9cdc5 /game/coins/CoinSubScene.cpp | |
parent | f31bd86ae5d7df21b788a273d4f2e530136ec184 (diff) | |
parent | 0d087f23affbdf5bcfb238bc9b9d3fc05b314c44 (diff) |
Merge pull request #101 from lonkaars/jaro/main-menu
Jaro/main menu
Diffstat (limited to 'game/coins/CoinSubScene.cpp')
-rw-r--r-- | game/coins/CoinSubScene.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/game/coins/CoinSubScene.cpp b/game/coins/CoinSubScene.cpp new file mode 100644 index 0000000..2c9feb6 --- /dev/null +++ b/game/coins/CoinSubScene.cpp @@ -0,0 +1,44 @@ +#include "CoinSubScene.h" + +#include "../Config.h" + +#include <crepe/api/Animator.h> +#include <crepe/api/AudioSource.h> +#include <crepe/api/CircleCollider.h> +#include <crepe/api/Rigidbody.h> +#include <crepe/api/Scene.h> + +using namespace crepe; +using namespace std; + +int CoinSubScene::create(Scene & scn, int coin_counter) { + vec2 size = {20, 20}; + + string unique_name = "coin_" + to_string(coin_counter++); + + GameObject coin = scn.new_object(unique_name.c_str(), "coin", vec2 {650, 0}, 0, 1); + coin.add_component<Rigidbody>(Rigidbody::Data { + .body_type = Rigidbody::BodyType::KINEMATIC, + .kinematic_collision = false, + .collision_layers = {COLL_LAY_PLAYER}, + }); + coin.add_component<CircleCollider>((size.x / 2) - 3).active = false; + crepe::OptionalRef<crepe::Sprite> coin_sprite = coin.add_component<Sprite>( + Asset {"asset/coin/coin1_TVOS.png"}, + Sprite::Data { + .sorting_in_layer = SORT_IN_LAY_COINS, + .order_in_layer = 0, + .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; +} |