This commit is contained in:
Claudel-D-Roy 2023-09-25 16:05:52 -04:00
commit f0912614a4
3 changed files with 42 additions and 3 deletions

View File

@ -4,6 +4,7 @@
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
#include <iomanip>
#ifdef _WIN32
#include <windows.h>
@ -33,6 +34,7 @@
#define VIEW_DISTANCE 256
#define TEXTURE_SIZE 128
#define MAX_BULLETS 64
#define COUNTDOWN 300
#define BASE_WIDTH 640
#define BASE_HEIGHT 480

View File

@ -120,7 +120,7 @@ void Engine::DisplayCrosshair() {
void Engine::DisplayCurrentItem() {
}
void Engine::DisplayHud() {
void Engine::DisplayHud(int timer) {
glBindTexture(GL_TEXTURE_2D, 0);
glLoadIdentity();
glDisable(GL_BLEND);
@ -186,6 +186,13 @@ void Engine::DisplayHud() {
std::ostringstream ss;
ss << m_player.GetUsername();
PrintText(fPosX, fPosY, scale, ss.str());
//Countdown
ss.str("");
ss << "Time: " << (int)(timer / 60) << ":" << std::setw(2) << std::setfill('0') << timer % 60;
PrintText(Width() - Width() * 0.15, Height() - (Height() / 19.2), scale, ss.str());
}
void Engine::DisplayInfo(float elapsedTime, BlockType bloc) {
@ -240,13 +247,14 @@ void Engine::DrawHud(float elapsedTime, BlockType bloc) {
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
int timer = GetCountdown(elapsedTime);
if (m_displayInfo) {
DisplayInfo(elapsedTime, bloc);
}
if (m_displayHud) {
DisplayHud();
DisplayHud(timer);
}
if (m_displayCrosshair) {
@ -295,6 +303,18 @@ float Engine::GetScale() const {
}
int Engine::GetFps(float elapsedTime) const { return 1 / elapsedTime; }
int Engine::GetCountdown(float elapsedTime) {
if (m_resetcountdown)
{
m_countdown = m_time + COUNTDOWN;
m_resetcountdown = false;
}
if (m_countdown < m_time)
Stop();
if(!m_stopcountdown)
m_time += elapsedTime;
return m_countdown - (int)m_time;
}
void Engine::Render(float elapsedTime) {
//static float gameTime = elapsedTime;
@ -424,6 +444,8 @@ void Engine::KeyPressEvent(unsigned char key) {
break;
case 5: // F - Ignorer
break;
case 6: // G - Ignorer
break;
case 12: // M - Ignorer
break;
case 7: // H - Ignorer
@ -432,6 +454,8 @@ void Engine::KeyPressEvent(unsigned char key) {
break;
case 17: // R - Ignorer
break;
case 19: // T - Ignorer
break;
case 24: // Y - Ignorer
break;
case 255: // Fn - Ignorer
@ -456,6 +480,10 @@ void Engine::KeyReleaseEvent(unsigned char key) {
case 5: // F - Toggle flash
m_flash = !m_flash;
break;
case 6: // G - Toggle Stop Countdown
m_stopcountdown = !m_stopcountdown;
std::cout << "STOP COUNTDOWN " << (m_stopcountdown ? "enabled" : "disabled") << std::endl;
break;
case 7: // H - Toggle HUD
m_displayHud = !m_displayHud;
std::cout << "DISPLAY HUD " << (m_displayHud ? "enabled" : "disabled") << std::endl;
@ -473,6 +501,10 @@ void Engine::KeyReleaseEvent(unsigned char key) {
case 18: // S - Stop reculer
m_keyS = false;
break;
case 19: // T -Reset countdown
m_resetcountdown = true;
std::cout << "RESET COUNTDOWN" << std::endl;
break;
case 22: // W - Stop avancer
m_keyW = false;
break;

View File

@ -35,12 +35,13 @@ private:
float GetScale() const;
int GetFps(float elapsedTime) const;
int GetCountdown(float elapsedTime);
bool LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps = true, bool stopOnError = true);
void DisplayCrosshair();
void DisplayCurrentItem();
void DisplayHud();
void DisplayHud(int timer);
void DisplayInfo(float elapsedTime, BlockType bloc);
void DrawHud(float elapsedTime, BlockType bloc);
void PrintText(float x, float y, float scale, const std::string& t);
@ -67,8 +68,10 @@ private:
Bullet* m_bullets[MAX_BULLETS];
float m_scale;
float m_time = 0;
int m_renderCount = 0;
int m_countdown = COUNTDOWN;
bool m_wireframe = false;
bool m_isSkybox = true;
@ -77,6 +80,8 @@ private:
bool m_displayCrosshair = true;
bool m_displayHud = true;
bool m_displayInfo = false;
bool m_resetcountdown = false;
bool m_stopcountdown = false;
bool m_keyW = false;
bool m_keyA = false;