Lamthai/game/main.cpp

71 lines
2.1 KiB
C++

#include <iostream>
#include <raylib.h>
#include <vector>
#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"
void create_menu(std::vector<Button>& buttons_arg, const std::vector<float>& screen_arg) {
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));
}
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) {
if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) {
if (CheckCollisionPointRec(GetMousePosition(), buttons_arg[0].rectangle)) {
buttons_arg = {};
init_combat(player_arg, ennemies_arg, screen_arg);
create_menu(buttons_arg, screen_arg);
} else if (CheckCollisionPointRec(GetMousePosition(), buttons_arg[2].rectangle)) {
game_loop_arg = 0;
}
}
}
int main() {
InitWindow(1200, 600, "Combat Lamthaï");
//ToggleFullscreen();
std::vector<float> screen;
if(IsWindowFullscreen()) {
int monitor = GetCurrentMonitor();
screen = {(float)GetMonitorWidth(monitor), (float)GetMonitorHeight(monitor)};
} else {
screen = {(float)GetScreenWidth(), (float)GetScreenHeight()};
}
Player mage;
init_default_mage(mage);
std::vector<Ennemy> ennemies;
create_ennemies(ennemies);
SetTargetFPS(60);
std::vector<Button> buttons;
create_menu(buttons, screen);
int arg;
bool game_loop = 1;
while (game_loop && !WindowShouldClose()) {
// Gestion des actions
handle_menu(buttons, mage, ennemies, game_loop, screen);
//Dessin
BeginDrawing();
ClearBackground(BLACK);
draw_buttons(buttons);
EndDrawing();
}
// Libération des ressources
CloseWindow();
return 0;
}