summaryrefslogtreecommitdiffhomepage
path: root/Oscillating.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Oscillating.cpp')
-rw-r--r--Oscillating.cpp33
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;
+}