Uploading assets & developing multiplayer implementations

This commit is contained in:
2026-05-20 12:11:04 +03:00
parent 446d0ede8e
commit 67f5fcf374
19 changed files with 59 additions and 14 deletions
+35 -1
View File
@@ -48,6 +48,7 @@ int main() {
GameState currentState = GameState::MainMenu;
Menu mainMenu("PONG RELOADED", { "Start Game", "Quit" });
Menu difficultyMenu("SELECT DIFFICULTY", { "Easy", "Normal", "Hard", "Back" });
// --- Main Game Loop ---
@@ -58,11 +59,44 @@ int main() {
switch (currentState) {
case GameState::MainMenu:
{
mainMenu.Update(currentState);
int selected = mainMenu.Update();
if (selected == 0) {
currentState = GameState::DifficultySelect;
}
else if (selected == 1) {
currentState = GameState::GameOver;
}
mainMenu.Draw();
break;
}
case GameState::DifficultySelect:
{
int selected = difficultyMenu.Update();
if (selected >= 0 && selected <= 2) {
if (selected == 0) {
cpu.SetDifficulty(Difficulty::Easy);
}
else if (selected == 1) {
cpu.SetDifficulty(Difficulty::Normal);
}
else if (selected == 2) {
cpu.SetDifficulty(Difficulty::Hard);
}
// Reset game session stats
player_score = 0;
cpu_score = 0;
ResetBall(ball, screen_width, screen_height);
currentState = GameState::Playing;
}
else if (selected == 3) {
currentState = GameState::MainMenu;
}
difficultyMenu.Draw();
break;
}
case GameState::Playing:
{
ball.Update();
+6 -10
View File
@@ -1,25 +1,21 @@
#include "menu.h"
void Menu::Update(GameState& currentState) {
int Menu::Update() {
// Handle Navigation
if (IsKeyPressed(KEY_DOWN)) {
selectedIndex++;
if (selectedIndex >= options.size()) selectedIndex = 0;
if (selectedIndex >= static_cast<int>(options.size())) selectedIndex = 0;
}
if (IsKeyPressed(KEY_UP)) {
selectedIndex--;
if (selectedIndex < 0) selectedIndex = options.size() - 1;
if (selectedIndex < 0) selectedIndex = static_cast<int>(options.size()) - 1;
}
// Handle Selection
if (IsKeyPressed(KEY_ENTER)) {
if (options[selectedIndex] == "Start Game") {
currentState = GameState::Playing;
}
else if (options[selectedIndex] == "Quit") {
currentState = GameState::GameOver;
}
return selectedIndex;
}
return -1;
}
void Menu::Draw() {
@@ -30,7 +26,7 @@ void Menu::Draw() {
DrawText(title.c_str(), screenWidth / 2 - MeasureText(title.c_str(), 60) / 2, screenHeight / 4, 60, WHITE);
// Draw Options
for (int i = 0; i < options.size(); i++) {
for (int i = 0; i < static_cast<int>(options.size()); i++) {
Color textColor = (i == selectedIndex) ? YELLOW : WHITE;
DrawText(options[i].c_str(), screenWidth / 2 - MeasureText(options[i].c_str(), 40) / 2, screenHeight / 2 + (i * 60), 40, textColor);
}