From 915dd2a9acda9c505ad82bd2dd8df282670ed5fd Mon Sep 17 00:00:00 2001 From: Aki Date: Wed, 20 Apr 2022 01:56:47 +0200 Subject: Added another generator and enemy for testing purposes --- WaveGenerator.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 WaveGenerator.cpp (limited to 'WaveGenerator.cpp') diff --git a/WaveGenerator.cpp b/WaveGenerator.cpp new file mode 100644 index 0000000..5d8dd9f --- /dev/null +++ b/WaveGenerator.cpp @@ -0,0 +1,47 @@ +#include "WaveGenerator.h" + +#include +#include +#include + +#include + +#include "ConstantVelocity.h" + + +WaveGenerator::WaveGenerator(std::shared_ptr position, ConstantVelocityBullet::Vector& bullets) : + m_position {position}, + m_bullets {bullets}, + m_delay {0}, + m_interval {0.22f}, + m_speed {100}, + m_shift {10}, + m_segments {30}, + m_color {100, 100, 240, 255} +{ +} + + +void +WaveGenerator::update(const float dt) +{ + if (!m_enabled) + return; + m_delay += dt; + if (m_delay > m_interval) { + m_delay -= m_interval; + for (float i = 0; i < m_segments; ++i) { + const float angle = (2.f / m_segments * i) * M_PI; + const float cos = std::cos(angle); + const float sin = std::sin(angle); + ConstantVelocityBullet bullet; + bullet.color = m_color; + bullet.radius = 3; + bullet.velocity.x = cos * m_speed; + bullet.velocity.y = sin * m_speed; + bullet.position.x = m_position->x + cos * m_shift; + bullet.position.y = m_position->y + sin * m_shift; + m_bullets.push_back(std::move(bullet)); + } + } +} -- cgit v1.1