Push pre-gamestate Pause

This commit is contained in:
mduval76 2023-12-03 00:47:04 -05:00
parent a67499049b
commit 8b448f5072
2 changed files with 58 additions and 49 deletions

View File

@ -55,9 +55,8 @@ void Engine::Init() {
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendEquation(GL_FUNC_SUBTRACT); glBlendEquation(GL_FUNC_SUBTRACT);
if (m_istarted) { if (m_istarted)
return; return;
}
else m_istarted = true; else m_istarted = true;
// Objet de skybox avec sa propre texture et son propre shader! // Objet de skybox avec sa propre texture et son propre shader!
@ -71,52 +70,52 @@ void Engine::Init() {
m_whoosh[x] = nullptr; m_whoosh[x] = nullptr;
} }
//char* ch = new char[2]; char* ch = new char[2];
//std::cout << "Jouer en ligne? [o/N] "; std::cout << "Jouer en ligne? [o/N] ";
//std::cin.getline(ch, 2); std::cin.getline(ch, 2);
//std::cout << std::endl; std::cout << std::endl;
//if (*ch == 'o' || *ch == 'O') { if (*ch == 'o' || *ch == 'O') {
// char* input = new char[32]; char* input = new char[32];
// std::string playname, srvname; std::string playname, srvname;
// while (playname.size() < 1) { while (playname.size() < 1) {
// std::cout << "Veuillez entrer un nom de joueur: "; std::cout << "Veuillez entrer un nom de joueur: ";
// std::cin.getline(input, 32); std::cin.getline(input, 32);
// std::cout << std::endl; std::cout << std::endl;
// playname = input; playname = input;
// if (playname.size() < 1 || playname.size() > 32) if (playname.size() < 1 || playname.size() > 32)
// std::puts("Nom invalide."); std::puts("Nom invalide.");
// } }
// while (srvname.size() < 1) { while (srvname.size() < 1) {
// std::cout << "Veuillez entrer une adresse de serveur: "; std::cout << "Veuillez entrer une adresse de serveur: ";
// std::cin.getline(input, 32); std::cin.getline(input, 32);
// std::cout << std::endl; std::cout << std::endl;
// srvname = input; srvname = input;
// if (srvname.size() < 1 || srvname.size() > 32) if (srvname.size() < 1 || srvname.size() > 32)
// std::puts("Adresse serveur invalide."); std::puts("Adresse serveur invalide.");
// } }
// delete[] input; delete[] input;
// if (!m_conn.Init()) { if (!m_conn.Init()) {
// if (!m_conn.Connect(srvname.c_str(), playname)) { if (!m_conn.Connect(srvname.c_str(), playname)) {
// // setup jeu en reseau. // setup jeu en reseau.
// std::cout << "ID recu du serveur: " << std::to_string(m_conn.getId()) << "!" << std::endl; std::cout << "ID recu du serveur: " << std::to_string(m_conn.getId()) << "!" << std::endl;
// std::cout << "Seed recu du serveur: " << std::to_string(m_conn.getSeed()) << "!" << std::endl; std::cout << "Seed recu du serveur: " << std::to_string(m_conn.getSeed()) << "!" << std::endl;
// m_player = Player(m_conn.getOrigin().position); m_player = Player(m_conn.getOrigin().position);
// for (auto& [key, player] : m_conn.m_players) for (auto& [key, player] : m_conn.m_players)
// m_players[key] = new RemotePlayer(player); m_players[key] = new RemotePlayer(player);
// seed = m_conn.getSeed(); seed = m_conn.getSeed();
// m_networkgame = true; m_networkgame = true;
// } }
// else std::cout << "Erreur de connexion." << std::endl; else std::cout << "Erreur de connexion." << std::endl;
// } }
// else std::cout << "Erreur de creation de socket." << std::endl; else std::cout << "Erreur de creation de socket." << std::endl;
//} }
//delete[] ch; delete[] ch;
m_world.SetSeed(seed); m_world.SetSeed(seed);
@ -126,9 +125,6 @@ void Engine::Init() {
m_startTime = std::chrono::high_resolution_clock::now(); m_startTime = std::chrono::high_resolution_clock::now();
m_remotePlayer.SetPosition(Vector3f(.5, CHUNK_SIZE_Y + 10., .5)); m_remotePlayer.SetPosition(Vector3f(.5, CHUNK_SIZE_Y + 10., .5));
// Gestion de souris.
CenterMouse();
HideCursor();
} }
void Engine::DeInit() {} void Engine::DeInit() {}
@ -278,6 +274,11 @@ void Engine::Render(float elapsedTime) {
return; return;
} }
if (m_gamestate == GameState::PAUSE) {
DisplayPauseMenu();
return;
}
if (m_gamestate == GameState::PLAY) { if (m_gamestate == GameState::PLAY) {
HideCursor(); HideCursor();
CenterMouse(); //D<>placement de centermouse dans l'action de jouer CenterMouse(); //D<>placement de centermouse dans l'action de jouer
@ -942,16 +943,23 @@ void Engine::DisplaySplashScreen() {
glTexCoord2f(0, 1); glVertex2i(-imageWidth / 2, imageHeight / 2); glTexCoord2f(0, 1); glVertex2i(-imageWidth / 2, imageHeight / 2);
glEnd(); glEnd();
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendEquation(GL_FUNC_ADD);
glEnable(GL_BLEND);
glMatrixMode(GL_PROJECTION); glMatrixMode(GL_PROJECTION);
glPopMatrix(); glPopMatrix();
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
glPopMatrix(); glPopMatrix();
} }
void Engine::DisplayPauseMenu() {
m_texturePauseMenu.Bind();
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2i(0, 0);
glTexCoord2f(1, 0); glVertex2i(Width(), 0);
glTexCoord2f(1, 1); glVertex2i(Width(), Height());
glTexCoord2f(0, 1); glVertex2i(0, Height());
glEnd();
}
void Engine::DisplayMainMenu() { void Engine::DisplayMainMenu() {
GLint viewport[4]; GLint viewport[4];
glGetIntegerv(GL_VIEWPORT, viewport); glGetIntegerv(GL_VIEWPORT, viewport);

View File

@ -61,6 +61,7 @@ private:
void DisplayInfo(float elapsedTime, BlockType bloc); void DisplayInfo(float elapsedTime, BlockType bloc);
void DisplaySplashScreen(); void DisplaySplashScreen();
void DisplayPauseMenu();
void DisplayMainMenu(); void DisplayMainMenu();
void DrawButtonBackgrounds(float centerX, float centerY, int iterations); void DrawButtonBackgrounds(float centerX, float centerY, int iterations);