summaryrefslogtreecommitdiffhomepage
path: root/GameScreen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'GameScreen.cpp')
-rw-r--r--GameScreen.cpp35
1 files changed, 8 insertions, 27 deletions
diff --git a/GameScreen.cpp b/GameScreen.cpp
index dcae176..6dc8025 100644
--- a/GameScreen.cpp
+++ b/GameScreen.cpp
@@ -1,16 +1,14 @@
#include "GameScreen.h"
-#include <cmath>
-
#include <raylib.h>
#include "Bullets.h"
GameScreen::GameScreen() :
- m_pos {400, 300}
+ m_pos {400, 300},
+ m_const {}
{
- m_const_bullets.reserve(10000);
}
@@ -21,27 +19,11 @@ GameScreen::update(const float dt)
m_pos.x -= dt * 80;
if (IsKeyDown(KEY_RIGHT))
m_pos.x += dt * 80;
- m_delay += dt;
- if (m_delay > TEST_INTERVAL) {
- m_delay -= TEST_INTERVAL;
- const int speed = 120;
- const int divisions = 17;
- for (double i = 0; i <= divisions; ++i) {
- const double angle = (0.1 + 0.8 * i / divisions) * M_PI;
- const double cos = std::cos(angle);
- const double sin = std::sin(angle);
- ConstantVelocityBullet bullet;
- bullet.position.x = 400;
- bullet.position.y = 20;
- bullet.velocity.x = cos * speed;
- bullet.velocity.y = sin * speed;
- m_const_bullets.push_back(std::move(bullet));
- }
- }
- ::update(dt, m_const_bullets);
+ m_generator.update(dt, m_const.m_bullets);
+ m_const.update(dt);
bool collided = false;
- for (const auto& bullet : m_const_bullets) {
- if (CheckCollisionCircles(m_pos, 10, bullet.position, 6))
+ for (const auto& bullet : m_const.m_bullets) {
+ if (CheckCollisionCircles(m_pos, 9, bullet.position, bullet.radius))
collided = true;
}
(void) collided;
@@ -52,8 +34,7 @@ void
GameScreen::draw()
{
DrawCircle(m_pos.x, m_pos.y, 10, LIGHTGRAY);
- for (const auto& bullet : m_const_bullets)
- DrawCircle(bullet.position.x, bullet.position.y, 6, RED);
+ m_const.draw();
DrawFPS(5, 5);
- DrawText(TextFormat("%d", m_const_bullets.size()), 5, 25, 20, DARKGRAY);
+ DrawText(TextFormat("%d", m_const.m_bullets.size()), 5, 25, 20, DARKGRAY);
}