www.pudn.com > ATimeToKill.rar > gui.cpp
#include "gui.h" #includeCGUI::CGUI() { minutesLeft = secondsLeft = enemiesLeft = 0; font = new CFont("Arial", 16); crosshair = new CFont("Courier New", 28); endText = new CFont("Arial", 40); } CGUI::~CGUI() { font->ClearFont(); crosshair->ClearFont(); endText->ClearFont(); delete font; delete crosshair; delete endText; } void CGUI::SetCurrentTime(float timeLeft) { // timeLeft is in seconds minutesLeft = (int)(timeLeft / 60.0); // 60 seconds in 1 minute secondsLeft = (int)floor(timeLeft) % 60; millisecondsLeft = (timeLeft - (float)floor(timeLeft)) * 60; } void CGUI::SetEnemiesLeft(int eLeft) { enemiesLeft = eLeft; } void CGUI::DrawWinner() { glDisable(GL_TEXTURE_2D); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); endText->SetPos3D(-0.25, 0.15, -0.1); endText->SetRGBA(0.3, 1.0, 0.3, 0.8); endText->Print("YOU WIN!"); endText->SetPos3D(-0.5, -0.2, -0.1); endText->SetRGBA(1.0, 1.0, 1.0, 0.8); endText->Print("Press the ESC key to exit"); glDisable(GL_BLEND); glEnable(GL_TEXTURE_2D); } void CGUI::DrawLoser() { glDisable(GL_TEXTURE_2D); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); endText->SetPos3D(-0.25, 0.15, -0.1); endText->SetRGBA(1.0, 0.3, 0.3, 0.8); endText->Print("YOU LOSE!"); endText->SetPos3D(-0.5, -0.2, -0.1); endText->SetRGBA(1.0, 1.0, 1.0, 0.8); endText->Print("Press the ESC key to exit"); glDisable(GL_BLEND); glEnable(GL_TEXTURE_2D); } void CGUI::Draw() { glDisable(GL_TEXTURE_2D); font->SetPos3D(2.5, 2.9, -5.0); font->SetRGB(0.2, 0.0, 1.0); if (secondsLeft < 10) { if (millisecondsLeft < 10) font->Print("Time: %d:0%d.0%d", minutesLeft, secondsLeft, millisecondsLeft); else font->Print("Time: %d:0%d.%d", minutesLeft, secondsLeft, millisecondsLeft); } else { if (millisecondsLeft < 10) font->Print("Time: %d:%d.0%d", minutesLeft, secondsLeft, millisecondsLeft); else font->Print("Time: %d:%d.%d", minutesLeft, secondsLeft, millisecondsLeft); } font->SetPos3D(2.5, 2.7, -5.0); font->Print("Enemies: %d", enemiesLeft); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); crosshair->SetRGBA(1.0, 0.1, 0.1, 0.7); crosshair->SetPos3D(-0.03, -0.03, -5.0); crosshair->Print("+"); glDisable(GL_BLEND); glEnable(GL_TEXTURE_2D); }