diff options
author | Aki <please@ignore.pl> | 2022-04-18 23:50:31 +0200 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-04-18 23:50:31 +0200 |
commit | 78097b5496209b56cef9d7fc8d6c13e4c87e0eb1 (patch) | |
tree | 29ccba95bafd04b594938a7f55be61c52bf4f4cc /Oscillating.cpp | |
parent | 5bb6b95fe71d33956491b98c29bf464a440ad221 (diff) | |
download | bullethell2022-78097b5496209b56cef9d7fc8d6c13e4c87e0eb1.zip bullethell2022-78097b5496209b56cef9d7fc8d6c13e4c87e0eb1.tar.gz bullethell2022-78097b5496209b56cef9d7fc8d6c13e4c87e0eb1.tar.bz2 |
Added simple behaviours for enemies
I don't quite like FallingAndOscillating approach. Perhaps it will be
better to just make it a list/vector in the enemy to allow for
composition.
Diffstat (limited to 'Oscillating.cpp')
-rw-r--r-- | Oscillating.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Oscillating.cpp b/Oscillating.cpp new file mode 100644 index 0000000..4839282 --- /dev/null +++ b/Oscillating.cpp @@ -0,0 +1,33 @@ +#include "Oscillating.h" + +#include <cmath> + +#include <raylib.h> + +#include "Generator.h" + + +Oscillating::Oscillating() : + m_phase {0}, + m_shift {1.6f} +{ +} + + +void +Oscillating::update(const float dt, Vector2& position, Generator& generator) +{ + (void) generator; + m_phase += dt * 0.8f; + if (m_phase > 2.f) + m_phase -= 2.f; + const float cos = std::cos(m_phase * M_PI); + position.x += cos * m_shift; +} + + +void +Oscillating::set_phase(const float phase) +{ + m_phase = phase; +} |