kill enemies for score
This commit is contained in:
26
main.cpp
26
main.cpp
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user