openGL电梯运动


这是一个用openGL写的一个电梯运动的实验,实现了电梯的上下移动的模拟!
资源截图
代码片段和文件信息
#include “StdAfx.h“
#include “Animation.h“



CAnimation::CAnimation(void)
{
eleTopLeftX = -2.0f;
eleTopLeftY = 5.7f;
}


CAnimation::~CAnimation(void)
{
}


// 绘制背景图
void CAnimation::drawBack()
{
GLfloat topLeftX = -6.0f;
GLfloat topLeftY =  3.6f;
GLfloat topRightX = -2.0f;
GLfloat topRightY = 3.6f;


glColor3f(0.4f0.4f0.4f);

glLineWidth(1);
glBegin(GL_QUADS); // 绘制三角形
glVertex3f(-6.0f 5.7f 0.0f); // 左上
glVertex3f( 6.0f 5.7f 0.0f); // 右上
glVertex3f( 6.0f 5.6f 0.0f); // 右下
glVertex3f(-6.0f 5.6f 0.0f);
glEnd();

for(int i = 0; i < 4; i++)
{
glBegin(GL_QUADS);
glVertex3f(topLeftX topLeftY 0);
glVertex3f(topRightX topRightY 0);
glVertex3f(topRightX topRightY - 0.1 0);
glVertex3f(topLeftX topLeftY - 0.1 0);
glEnd();
glBegin(GL_QUADS);
glVertex3f(topLeftX * -1 topLeftY 0);
glVertex3f(topRightX * -1 topRightY 0);
glVertex3f(topRightX * -1 topRightY - 0.1 0);
glVertex3f(topLeftX * -1 topLeftY - 0.1 0);
glEnd();

topLeftY -= 2.2;
topRightY -= 2.2;
}

glBegin(GL_QUADS); // 绘制三角形
glVertex3f(-6.0f topLeftY 0.0f); // 左上
glVertex3f( 6.0f topLeftY 0.0f); // 右上
glVertex3f( 6.0f topLeftY - 0.1 0.0f); // 右下
glVertex3f(-6.0f topLeftY - 0.1 0.0f);
glEnd();


glBegin(GL_QUADS);
glVertex3f(-2.1 5.7 0);
glVertex3f(-2.0 5.7 0);
glVertex3f(-2.0 -5.3 0);
glVertex3f(-2.1 -5.3 0);
glEnd();

glBegin(GL_QUADS);
glVertex3f(2.1 5.7 0);
glVertex3f(2.0 5.7 0);
glVertex3f(2.0 -5.3 0);
glVertex3f(2.1 -5.3 0);
glEnd();

}

void CAnimation::drawElevator()
{
glColor3f(0.0f0.0f0.0f);
glBegin(GL_LINES);
glVertex3f(eleTopLeftX + 2 eleTopLeftY 0);
glVertex3f(eleTopLeftX + 2 eleTopLeftY - 2.2 0);
glEnd();

glColor3f(0.3f0.4f0.4f);
glBegin(GL_QUADS);
glVertex3f(eleTopLeftX eleTopLeftY 0.0f);
glVertex3f(eleTopLeftX + 4 eleTopLeftY 0.0f);
glVertex3f(eleTopLeftX + 4 eleTopLeftY - 2.2 0.0f);
glVertex3f(eleTopLeftX eleTopLeftY - 2.2 0.0f);
glEnd();


}

void CAnimation::nextFram(int thisFloor int nextFloor)
{
int isDown = 0;
GLfloat temp = 0;
if(thisFloor - nextFloor > 0)
isDown = 1;
else 
isDown = 0;

if(isDown)
{
temp = 5.7 + (nextFloor - 5) * 2.2 + 0.1 ;
if(this->eleTopLeftY >= temp)
this->eleTopLeftY -= 0.04;
}
else
{
temp = 5.7 + (nextFloor - 5) * 2.2 ;
if(this->eleTopLeftY < temp)
this->eleTopLeftY += 0.04;

}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-09-04 08:49  Elevator
     目录           0  2013-09-04 08:48  ElevatorDebug
     文件      238592  2013-06-03 22:44  ElevatorDebugElevator.exe
     文件     2140176  2013-06-03 22:44  ElevatorDebugElevator.ilk
     文件     6048768  2013-06-03 22:44  ElevatorDebugElevator.pdb
     目录           0  2013-09-04 08:49  ElevatorElevator
     文件    69488640  2013-06-04 00:41  ElevatorElevator.sdf
     文件         891  2013-06-03 19:20  ElevatorElevator.sln
     文件       21504  2013-06-04 00:41  ElevatorElevator.suo
     文件        2571  2013-06-04 00:28  ElevatorElevatorAnimation.cpp
     文件         352  2013-06-03 22:21  ElevatorElevatorAnimation.h
     目录           0  2013-09-04 08:49  ElevatorElevatorDebug
     文件       16662  2013-06-03 22:44  ElevatorElevatorDebugAnimation.obj
     文件        4498  2013-06-03 22:44  ElevatorElevatorDebugcl.command.1.tlog
     文件       74142  2013-06-03 22:44  ElevatorElevatorDebugCL.read.1.tlog
     文件        6354  2013-06-03 22:44  ElevatorElevatorDebugCL.write.1.tlog
     文件         667  2013-06-03 19:21  ElevatorElevatorDebugElevator.exe.embed.manifest
     文件         732  2013-06-03 19:21  ElevatorElevatorDebugElevator.exe.embed.manifest.res
     文件         381  2013-06-03 22:44  ElevatorElevatorDebugElevator.exe.intermediate.manifest
     文件          68  2013-06-03 22:44  ElevatorElevatorDebugElevator.lastbuildstate
     文件        2466  2013-06-03 22:44  ElevatorElevatorDebugElevator.log
     文件       57308  2013-06-03 22:34  ElevatorElevatorDebugElevator.obj
     文件    36962304  2013-06-03 19:21  ElevatorElevatorDebugElevator.pch
     文件       85036  2013-06-03 19:21  ElevatorElevatorDebugElevator.res
     文件         707  2013-06-03 19:21  ElevatorElevatorDebugElevator.vcxprojResolveAssemblyReference.cache
     文件           0  2013-06-03 19:21  ElevatorElevatorDebugElevator.write.1.tlog
     文件       56529  2013-06-03 22:34  ElevatorElevatorDebugElevatorDoc.obj
     文件       44655  2013-06-03 22:39  ElevatorElevatorDebugElevatorView.obj
     文件         206  2013-06-03 19:21  ElevatorElevatorDebugElevator_manifest.rc
     文件           2  2013-06-03 22:44  ElevatorElevatorDebuglink-cvtres.read.1.tlog
     文件           2  2013-06-03 22:44  ElevatorElevatorDebuglink-cvtres.write.1.tlog
............此处省略89个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)