kill enemies for score

This commit is contained in:
2025-11-30 19:17:51 -05:00
parent e191e1b508
commit 53f1264c5f

View File

@@ -1,3 +1,4 @@
#include <iterator>
#include <mutex> #include <mutex>
#include <print> #include <print>
#include <random> #include <random>
@@ -9,12 +10,14 @@
auto screen_width = 800; auto screen_width = 800;
auto screen_height = 600; auto screen_height = 600;
Rectangle walls[] = { Rectangle walls[] = {
{.x = 100, .y = 100, .width = 5, .height = 100} // {.x = 100, .y = 100, .width = 5, .height = 100}
}; };
Player player; Player player;
auto player_speed = 5.0f; auto player_speed = 5.0f;
uint32_t score;
Tear tears[100] = {}; Tear tears[100] = {};
float tear_speed = 10; float tear_speed = 10;
float tear_range = 500; float tear_range = 500;
@@ -26,8 +29,8 @@ std::random_device dev;
std::mt19937 rng(dev()); std::mt19937 rng(dev());
std::mutex enemy_mutex; std::mutex enemy_mutex;
float enemy_max_speed = 5.0; float enemy_max_speed = 2.0;
float enemy_radius = 50.0; float enemy_radius = 25.0;
Enemy enemies[100] = {}; Enemy enemies[100] = {};
Vector2 Player::center() const noexcept { Vector2 Player::center() const noexcept {
@@ -149,6 +152,15 @@ void update_tears() {
break; break;
} }
} }
for (auto& enemy: enemies) {
if (CheckCollisionCircles(center, tear_radius, enemy.center, enemy.radius)) {
active = false;
enemy.alive = false;
score++;
}
}
switch (direction) { switch (direction) {
case UP: case UP:
center.y -= tear_speed; center.y -= tear_speed;
@@ -182,6 +194,10 @@ int main() {
player.width = 50; player.width = 50;
player.height = 50; player.height = 50;
std::string score_text_buffer{64};
score_text_buffer.reserve(64);
score_text_buffer.clear();
while (!WindowShouldClose()) { while (!WindowShouldClose()) {
if (IsWindowResized()) { if (IsWindowResized()) {
screen_height = GetScreenHeight(); screen_height = GetScreenHeight();
@@ -240,6 +256,10 @@ int main() {
} }
} }
std::format_to(std::back_inserter(score_text_buffer), "Score: {}", score);
DrawText(score_text_buffer.c_str(), 50, screen_height - 100, 20, BLACK);
score_text_buffer.clear();
EndDrawing(); EndDrawing();
} }
CloseWindow(); CloseWindow();