diff options
author | Max-001 <maxsmits21@kpnmail.nl> | 2024-12-24 11:36:19 +0100 |
---|---|---|
committer | Max-001 <maxsmits21@kpnmail.nl> | 2024-12-24 11:36:19 +0100 |
commit | 7a6658510ba48c2fbe77e50f36452b0407f7d840 (patch) | |
tree | b62aa81def8d662f2d0c47270bcb597320c83450 /game/player/PlayerScript.cpp | |
parent | 8f8d579389303184038addc77c1acffdb2081f91 (diff) |
Implemented particle emmitters
Diffstat (limited to 'game/player/PlayerScript.cpp')
-rw-r--r-- | game/player/PlayerScript.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/game/player/PlayerScript.cpp b/game/player/PlayerScript.cpp index 874324e..04e7264 100644 --- a/game/player/PlayerScript.cpp +++ b/game/player/PlayerScript.cpp @@ -1,6 +1,7 @@ #include "PlayerScript.h" #include <crepe/api/Animator.h> +#include <crepe/api/ParticleEmitter.h> #include <crepe/api/Rigidbody.h> #include <crepe/api/Transform.h> #include <crepe/types.h> @@ -10,8 +11,14 @@ using namespace std; void PlayerScript::fixed_update(crepe::duration_t dt) { RefVector<Animator> animators = this->get_components_by_name<Animator>("player"); + RefVector<ParticleEmitter> emitters + = this->get_components_by_name<ParticleEmitter>("player"); Transform & transform = this->get_components_by_name<Transform>("player").front(); + for (ParticleEmitter & emitter : emitters) { + emitter.data.boundary.offset = vec2(0, -transform.position.y); + } + Rigidbody & rb = this->get_components_by_name<Rigidbody>("player").front(); if (this->get_key_state(Keycode::SPACE)) { rb.add_force_linear(vec2(0, -10)); @@ -22,6 +29,9 @@ void PlayerScript::fixed_update(crepe::duration_t dt) { anim.data.looping = true; prev_anim = 1; } + for (ParticleEmitter & emitter : emitters) { + emitter.data.emission_rate = 30; + } } } else if (transform.position.y == 195) { if (prev_anim != 0) { @@ -31,6 +41,9 @@ void PlayerScript::fixed_update(crepe::duration_t dt) { anim.data.looping = true; prev_anim = 0; } + for (ParticleEmitter & emitter : emitters) { + emitter.data.emission_rate = 0; + } } } else { if (prev_anim != 2) { @@ -39,6 +52,9 @@ void PlayerScript::fixed_update(crepe::duration_t dt) { anim.data.looping = false; prev_anim = 2; } + for (ParticleEmitter & emitter : emitters) { + emitter.data.emission_rate = 0; + } } } } |