summaryrefslogtreecommitdiffhomepage
path: root/Enemy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Enemy.cpp')
-rw-r--r--Enemy.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/Enemy.cpp b/Enemy.cpp
new file mode 100644
index 0000000..7caea31
--- /dev/null
+++ b/Enemy.cpp
@@ -0,0 +1,40 @@
+#include "Enemy.h"
+
+#include <memory>
+#include <utility>
+
+#include <raylib.h>
+
+#include "Generator.h"
+
+
+Enemy::Enemy(std::unique_ptr<Generator> generator) :
+ m_hold {2},
+ m_position {std::make_shared<Vector2>()},
+ m_generator {std::move(generator)}
+{
+ m_position->x = 400;
+ m_position->y = 40;
+ m_generator->attach(m_position);
+}
+
+
+void
+Enemy::update(const float dt)
+{
+ if (m_hold > 0) {
+ m_hold -= dt;
+ return;
+ }
+ if (m_generator)
+ m_generator->update(dt);
+}
+
+
+void
+Enemy::draw()
+{
+ if (m_hold > 0)
+ return;
+ DrawCircle(m_position->x, m_position->y, 6, DARKGRAY);
+}