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

📄 cube.cpp

📁 小型的3D游戏引擎
💻 CPP
字号:
#include <windows.h>
#include <gl/gl.h>
#include "cube.h"

////////////////////////////////////////////////////////////////////////////////

GcCube::GcCube():
size(1),
posX(0),
posY(0),
posZ(0),
velX(2.5f),
velY(-2.5f),
velZ(2.5f)
{
	// Default size is 1 unit per side and pos is 0,0,0
}

////////////////////////////////////////////////////////////////////////////////

GcCube::~GcCube()
{
}

////////////////////////////////////////////////////////////////////////////////

void GcCube::SetSize(float sSize)
{
	size = sSize / 2;
}

////////////////////////////////////////////////////////////////////////////////

void GcCube::SetPosition(float x, float y, float z)
{
	posX = x;
	posY = y;
	posZ = z;
}

////////////////////////////////////////////////////////////////////////////////

void GcCube::Move(float xMove, float yMove, float zMove, float height, bool old)
{
	// Check to see so that the cube doesn't move thorught the terrain
	if(posY > height + size + 10)
	{
		
		posY += yMove;
	}
	else
	{
		posY = height + size + 10;
	}

	posZ += zMove;
	posX += xMove;
}

////////////////////////////////////////////////////////////////////////////////

void GcCube::Move(float xAcel, float yAcel, float zAcel, float height)
{
	// Set the new speed
	velX += xAcel;
	velY += yAcel;
	velZ += zAcel;

	// Check to see so that the cube doesn't move thorught the terrain
	if(posY > height + size + 10)
	{
		
		posY += velY;
	}
	else
	{
		posY = height + size + 10;
		velY = -2.5f;
	}

	posZ += velZ;
	posX += velX;
}


////////////////////////////////////////////////////////////////////////////////

void GcCube::Draw()
{	
	glPushMatrix();
		glTranslatef(posX, posY, posZ);

		glColor3f(1.0f, 1.0f, 1.0f);
		
		// Top face
		glBegin(GL_QUADS);
			glVertex3f(size, size, size);
			glVertex3f(size, size, -size);
			glVertex3f(-size, size, -size);
			glVertex3f(-size, size, size);
		glEnd();

		// Front face
		glBegin(GL_QUADS);
			glVertex3f(size, size, size);
			glVertex3f(-size, size, size);
			glVertex3f(-size, -size, size);
			glVertex3f(size, -size, size);
		glEnd();

		// Right face
		glBegin(GL_QUADS);
			glVertex3f(size, size, size);
			glVertex3f(size, -size, size);
			glVertex3f(size, -size, -size);
			glVertex3f(size, size, -size);
		glEnd();

		// Left face
		glBegin(GL_QUADS);
			glVertex3f(-size, size, size);
			glVertex3f(-size, size, -size);
			glVertex3f(-size, -size, -size);
			glVertex3f(-size, -size, size);
		glEnd();

		// Bottom face
		glBegin(GL_QUADS);
			glVertex3f(-size, -size, size);
			glVertex3f(-size, -size, -size);
			glVertex3f(size, -size, -size);
			glVertex3f(size, -size, size);
		glEnd();

		// Back face
		glBegin(GL_QUADS);
			glVertex3f(size, -size, -size);
			glVertex3f(-size, -size, -size);
			glVertex3f(-size, size, -size);
			glVertex3f(size, size, -size);
		glEnd();

	glPopMatrix();
}

////////////////////////////////////////////////////////////////////////////////
		

⌨️ 快捷键说明

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