⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui.cpp

📁 “恐怖之战”游戏源码
💻 CPP
字号:
#include "gui.h"
#include <math.h>

CGUI::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)
{
	// 经过的时间(以秒为单位)
	minutesLeft = (int)(timeLeft / 60.0);	
	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);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -