Lamthai/game/main.cpp

71 lines
2.1 KiB
C++
Raw Permalink Normal View History

2025-07-12 12:33:24 +02:00
#include <iostream>
2025-07-12 17:28:49 +02:00
#include <raylib.h>
2025-07-12 12:33:24 +02:00
#include <vector>
2025-07-12 17:28:49 +02:00
#include "define.h"
#include "logic/player.h"
#include "logic/ennemy.h"
#include "logic/spells.h"
#include "interface/interfaces.h"
#include "logic/combat.h"
#include "interface/ui_elements.h"
2025-07-14 15:12:29 +02:00
void create_menu(std::vector<Button>& buttons_arg, const std::vector<float>& screen_arg) {
2025-07-14 14:38:08 +02:00
buttons_arg.push_back(create_button(BUTTON_BASIC, BUTTON_BIG, std::vector<float>{0.5, 0.5}, "Play", screen_arg));
buttons_arg.push_back(create_button(BUTTON_INACTIVE, BUTTON_MEDIUM, std::vector<float>{0.5, 0.6}, "Options", screen_arg));
buttons_arg.push_back(create_button(BUTTON_DANGER, BUTTON_MEDIUM, std::vector<float>{0.5, 0.7}, "Quit", screen_arg));
}
2025-07-14 15:12:29 +02:00
void handle_menu(std::vector<Button>& buttons_arg, Player& player_arg, std::vector<Ennemy>& ennemies_arg, bool& game_loop_arg, const std::vector<float>& screen_arg) {
2025-07-12 17:28:49 +02:00
if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) {
if (CheckCollisionPointRec(GetMousePosition(), buttons_arg[0].rectangle)) {
buttons_arg = {};
2025-07-12 23:31:14 +02:00
init_combat(player_arg, ennemies_arg, screen_arg);
2025-07-14 14:38:08 +02:00
create_menu(buttons_arg, screen_arg);
2025-07-12 17:28:49 +02:00
} else if (CheckCollisionPointRec(GetMousePosition(), buttons_arg[2].rectangle)) {
game_loop_arg = 0;
}
}
2025-07-12 12:33:24 +02:00
}
int main() {
2025-07-14 15:12:29 +02:00
InitWindow(1200, 600, "Combat Lamthaï");
2025-07-16 18:31:15 +02:00
//ToggleFullscreen();
2025-07-14 15:12:29 +02:00
std::vector<float> screen;
2025-07-12 17:28:49 +02:00
if(IsWindowFullscreen()) {
int monitor = GetCurrentMonitor();
2025-07-14 15:12:29 +02:00
screen = {(float)GetMonitorWidth(monitor), (float)GetMonitorHeight(monitor)};
2025-07-12 17:28:49 +02:00
} else {
2025-07-14 15:12:29 +02:00
screen = {(float)GetScreenWidth(), (float)GetScreenHeight()};
2025-07-12 17:28:49 +02:00
}
2025-07-12 12:33:24 +02:00
Player mage;
init_default_mage(mage);
std::vector<Ennemy> ennemies;
create_ennemies(ennemies);
2025-07-12 17:28:49 +02:00
SetTargetFPS(60);
std::vector<Button> buttons;
2025-07-14 14:38:08 +02:00
create_menu(buttons, screen);
2025-07-12 17:28:49 +02:00
2025-07-12 12:33:24 +02:00
int arg;
bool game_loop = 1;
2025-07-12 17:28:49 +02:00
while (game_loop && !WindowShouldClose()) {
// Gestion des actions
2025-07-12 23:31:14 +02:00
handle_menu(buttons, mage, ennemies, game_loop, screen);
2025-07-12 17:28:49 +02:00
//Dessin
BeginDrawing();
ClearBackground(BLACK);
draw_buttons(buttons);
EndDrawing();
2025-07-12 12:33:24 +02:00
}
2025-07-12 17:28:49 +02:00
// Libération des ressources
CloseWindow();
2025-07-12 12:33:24 +02:00
return 0;
}