📄 cube.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 + -