From 85119293fe4f6814d44e8ee3f182c40876829128 Mon Sep 17 00:00:00 2001 From: Aki Date: Sun, 17 Apr 2022 14:03:10 +0200 Subject: Added sample bullet and some generation --- GameScreen.cpp | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) (limited to 'GameScreen.cpp') diff --git a/GameScreen.cpp b/GameScreen.cpp index 714ccf5..dcae176 100644 --- a/GameScreen.cpp +++ b/GameScreen.cpp @@ -1,11 +1,16 @@ #include "GameScreen.h" +#include + #include +#include "Bullets.h" + GameScreen::GameScreen() : m_pos {400, 300} { + m_const_bullets.reserve(10000); } @@ -13,9 +18,33 @@ void GameScreen::update(const float dt) { if (IsKeyDown(KEY_LEFT)) - m_pos.x -= dt * 30; + m_pos.x -= dt * 80; if (IsKeyDown(KEY_RIGHT)) - m_pos.x += dt * 30; + 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); + bool collided = false; + for (const auto& bullet : m_const_bullets) { + if (CheckCollisionCircles(m_pos, 10, bullet.position, 6)) + collided = true; + } + (void) collided; } @@ -23,4 +52,8 @@ 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); + DrawFPS(5, 5); + DrawText(TextFormat("%d", m_const_bullets.size()), 5, 25, 20, DARKGRAY); } -- cgit v1.1