• 大小: 36.07MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-30
  • 语言: 其他
  • 标签: opengl  室内场景  

资源简介

使用opengl绘制的场景,有各种灯光,各种碰撞的检测,实现墙体、边界的不穿透。

资源截图

代码片段和文件信息

///////////////////////////////////////////////
// camera.cpp

#include “gl\glut.h“
#include “gl\glu.h“
#include “camera.h“


Camera::Camera()
{
}

void Camera::Look()
{
glMatrixMode(GL_MODELVIEW); //模型视模式
glLoadIdentity();                             // 单位阵
gluLookAt(m_fPos[0] m_fPos[1] m_fPos[2]
m_fTarget[0] m_fTarget[1] m_fTarget[2]
m_fUpDir[0] m_fUpDir[1] m_fUpDir[2]);          // 相机设置
}

CamPeople::CamPeople()
{
m_fD = -7;
m_fPos[0] = -5 m_fPos[1] =-94 m_fPos[2] = m_fD;
m_fTarget[0] = 0 m_fTarget[1] = 0 m_fTarget[2] = 0;
m_fUpDir[0] = 0 m_fUpDir[1] = 1 m_fUpDir[2] = 0;

m_fAlpha = m_fTheta = 0;
m_fDeltaAalpha = m_fDeltaTheta = 0.1;
m_fDeltaLamda = 0.5;
    m_l=0.5;
m_r=0.5;
m_u=0.5;
m_d=0.5;
}

void CamPeople::Rotate_Left()
{
m_fAlpha -= m_fDeltaAalpha;
}

void CamPeople::Rotate_Right()
{
m_fAlpha += m_fDeltaAalpha;
}

void CamPeople::Forward()
{
m_fPos[2] -= m_l;
if(((((m_fPos[0])<=11)&&((m_fPos[0])>=-19))&&(((m_fPos[1])<=-70)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-30)&&((m_fPos[2])<=0)))
{
if((!((((m_fPos[0])<=0)&&((m_fPos[0])>=-8))&&(((m_fPos[1])<=-90)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-5)&&((m_fPos[2])<=5))))
{
if(m_fPos[2]>-5)
{m_fPos[2]=-5;}
if(m_fPos[2]<-25)
{m_fPos[2]=-25;}
}
}
if(!(((((m_fPos[0])<=11)&&((m_fPos[0])>=-19))&&(((m_fPos[1])<=-70)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-30)&&((m_fPos[2])<=0))))
{
     if((!((((m_fPos[0])<=0)&&((m_fPos[0])>=-8))&&(((m_fPos[1])<=-90)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-5)&&((m_fPos[2])<=5))))
{
if((m_fPos[2]>-35)&&((m_fPos[0]<16)&&(m_fPos[0]>-24)))
{
if(m_fPos[2]<5)
{m_fPos[2]=5;}
}
}
}
if(!(((((m_fPos[0])<=11)&&((m_fPos[0])>=-19))&&(((m_fPos[1])<=-70)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-30)&&((m_fPos[2])<=0))))
{
if(m_fPos[2]<-95)
{
m_fPos[2]=-95;
}
}

}

void CamPeople::Backward()
{
m_fPos[2] += m_r;
if(((((m_fPos[0])<=11)&&((m_fPos[0])>=-19))&&(((m_fPos[1])<=-70)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-30)&&((m_fPos[2])<=0)))
{
if((!((((m_fPos[0])<=0)&&((m_fPos[0])>=-8))&&(((m_fPos[1])<=-90)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-5)&&((m_fPos[2])<=5))))
{
if(m_fPos[2]>-5)
{m_fPos[2]=-5;}
if(m_fPos[2]<-25)
{m_fPos[2]=-25;}
}
}
if(!(((((m_fPos[0])<=11)&&((m_fPos[0])>=-19))&&(((m_fPos[1])<=-70)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-30)&&((m_fPos[2])<=0))))
{
     if((!((((m_fPos[0])<=0)&&((m_fPos[0])>=-8))&&(((m_fPos[1])<=-90)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-5)&&((m_fPos[2])<=5))))
{
if((m_fPos[2]<5)&&(m_fPos[0]<16)&&(m_fPos[0]>-24))
{
if(m_fPos[2]>-35)
{m_fPos[2]=-35;}
}
}
}
if(!(((((m_fPos[0])<=11)&&((m_fPos[0])>=-19))&&(((m_fPos[1])<=-70)&&((m_fPos[1])>=-100))&&((m_fPos[2])>=-30)&&((m_fPos[2])<=0))))
{
if(m_fPos[2]>95)
{
m_fPos[2]=95;
}
}
}

void CamPeople::Up()
{
m_fPos[1] += m_u;
if(((((m_fPos[0])<=11)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      196664  2013-12-17 19:18  endless_dn.bmp
     文件     1440056  2013-12-20 19:58  IMG_0446.bmp
     文件      921656  2012-08-19 20:04  Leather_NRM.bmp
     文件        1232  2013-12-07 10:56  ReadMe.txt
     文件      201321  2013-12-09 20:03  Seamless wall white paint stucco plaster texture 01.jpg
     文件         297  2013-12-07 10:56  StdAfx.cpp
     文件         769  2013-12-07 10:56  StdAfx.h
     文件     1555256  2013-12-20 19:21  beautiful-wood-floor-texture-sketchup-warehouse-type.bmp
     文件        6525  2013-12-23 08:51  camera.cpp
     文件         679  2013-12-21 22:38  camera.h
     文件     5760056  2013-12-20 20:36  desk.bmp
     文件     2396600  2013-12-21 18:59  door.bmp
     文件    12582966  2013-12-11 23:38  endless_bk.bmp
     文件    12582966  2013-12-11 23:38  endless_ft.bmp
     文件    12582966  2013-12-11 23:38  endless_lf.bmp
     文件    12582966  2013-12-11 23:38  endless_rt.bmp
     文件    12582966  2013-12-11 23:38  endless_up.bmp
     文件     1228856  2012-08-19 20:08  outside.bmp
     文件     3932214  2013-12-20 21:34  picture.bmp
     文件      786488  2013-12-20 21:02  pictureframe.bmp
     文件       49206  2011-06-07 22:12  sky.bmp
     文件      583653  2013-12-20 19:58  textures-wallpapers-textures-bang.jpg
     文件     3145784  2013-12-09 20:05  wall.bmp
     文件       21288  2013-12-23 08:48  第五次作业.cpp
     文件        3520  2013-12-23 02:40  第五次作业.dsp
     文件         528  2013-12-21 21:07  第五次作业.dsw
     文件       58368  2014-01-21 11:31  第五次作业.ncb
     文件       54784  2014-01-21 11:31  第五次作业.opt
     文件         425  2013-12-23 08:52  第五次作业.plg

评论

共有 条评论