资源简介
使用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 picturefr
文件 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
相关资源
- OpenGL场景漫游
- 用opengl实现的太阳系模型
- OpenGL 3D贪吃蛇程序,很小
- OpenGL爆炸碎片化效果 源码
- OpenGL三茶壶三光源光源绕着茶壶旋转
- 10个OpenGL的源码
- vc写的一个游戏里面三维场景漫游
- OpenGL实现的简单游戏引擎
- OpenGL游戏程序设计源码
- glew最新版本glew1.11.0
- OpenGL 火箭
- 天空盒和地面
- 三维场景漫游.zip
- openGL实现的正方体六面贴图
- opengl简易翻牌游戏
- Qt Openglwidget 显示图片纹理贴图
- OpenGL实现三维物体旋转,缩放
- MD5GPU.rar
- OpenGL立方体在世界坐标系中缩放_旋转
- OpenGL ES 2.0 编程指南 中文版.pdf
- openGL实现三维点云显示
- opengl写的趣味3D骰子
- 计算机图形学实验 opengl实现太阳系运
- opengl实现地球围绕太阳转动
- opnegl 太阳 月亮 地球 天体旋转
- glut库glew库glfw库glaux库
- OpenGL小车三维模型源码.zip
- 虚拟环境漫游系统
- 基于OpenGL实现俄罗斯方块
- OpenGL简单场景编程
评论
共有 条评论