资源简介
小弟的毕业设计,老师给了个优秀。是一款基于opengl的3D射击游戏,类似cs.主要用到计算机图形学、c++、opengl的一些相关知识,有文档。程序需要做一点配置才能运行,中国普通本科计算机专业的学生可能用一周的时间才能让该程序运行起来,如果你是一个平时只会玩游戏和泡妞的菜鸟,最好不要下这个东西。
代码片段和文件信息
// anmobj.cpp: implementation of the anmobj class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “anmobj.h“
#include “baiscobj.h“
//////////////////////////////////////////////////////////////////////
int dongzuo[7]={0227121414};
extern baiscobj* m_baiscobj;
//////////////////////////////////////////////////////////////////////
anmobj::anmobj()
{
}
anmobj::~anmobj()
{}
bool anmobj::manmove(int i)//对象的移动
{ float stx=.5fstz=.5f; //走步长
float qx=man[i].qd[0]-man[i].zd[0]; //x当前,目标位置差
float qz=man[i].qd[1]-man[i].zd[1]; //z当前,目标位置差
float qxa=abs(qx); //x位置差绝对值
float qza=abs(qz); //z位置差绝对值
if((int)qx==0&&(int)qz==0) return true; //为0没动(到达)返回
if(qxa if(qza if((int)qx!=0) man[i].qd[0]-=qxa/qx*stx; //当前位置加步长
if((int)qz!=0) man[i].qd[1]-=qza/qz*stz; //[qya/qy]单位绝对值
if((int)qx>0&&(int)qz<0) {re[i]=45*1;return false;} //取东北向
if((int)qx>0&&(int)qz>0) {re[i]=45*3;return false;} //取东南向
if((int)qx<0&&(int)qz>0) {re[i]=45*5;return false;} //取西南向
if((int)qx<0&&(int)qz<0) {re[i]=45*7;return false;} //取西北向
if ((int)qz<0) {re[i]=45*0;return false;} //取北向
if((int)qx>0) {re[i]=45*2;return false;} //取东向
if ((int)qz>0) {re[i]=45*4;return false;} //取南向
if((int)qx<0) {re[i]=45*6;return false;} //取西向
return false;
}
void anmobj::setman(int ifloat y)//显示人
{ if(model[0]==NULL) return; //模型为空返回
srand(timeGetTime()); //
man[i].qd[2]=y; //所在高度
counter[i]++; //模型i计数指针加一
if(counter[i]>4) //用于动作延时
{ counter[i]=0; //模型i计数置0
if(man[i].dz!=19) frame[i]++; //是活的动作序列号+1
else {frame[i]=man[i].death;}
if(man[i].dz==1) //跑动中
{if(manmove(i)==true) //到目标点
{if(man[i].dz>15)
{if(man[i].dz==16) man[i].death=177;//死亡帧
if(man[i].dz==17) man[i].death=183;//死亡帧
if(man[i].dz==18) man[i].death=189;//死亡帧
man[i].dz=19;frame[i]-=1;
return;
}//完成倒地
man[i].dz=dongzuo[rand()%7]; //随机选取一个动作
frame[i]=anim[0][man[i].dz].start;//取被选取动作的开始帧
}
}
if(frame[i]>anim[0][man[i].dz].end) //到动作尾帧了吗?
{ if(man[i].dz>15)
{if(man[i].dz==16) man[i].death=177;//死亡帧
if(man[i].dz==17) man[i].death=183;//死亡帧
if(man[i].dz==18) man[i].death=189;//死亡帧
man[i].dz=19;frame[i]-=1;
return;
}//完成倒地
if(man[i].dz!=1) //停下的
{ man[i].dz=dongzuo[rand()%7]; //随机选取一个动作
if(rand()%10==0) //1/10的慨率
{man[i].dz=1; //跑
man[i].zd[0]=RAND_COORD((MAP_W-1)*MAP_SCALE);//随机目标X分量
man[i].zd[1]=RAND_COORD((MAP_W-1)*MAP_SCALE);//随机目标Z分量
}
}
frame[i]=anim[0][man[i].dz].start;//取被选取动作的开始帧
}
}
///////////////////////////////////////////////////////////////////
glPushAttrib(GL_CURRENT_BIT);//保存现有颜色属性
glPushMatrix();//glPopMatrix();
glTranslatef(man[i].qd[0]man[i].qd[2] -man[i].qd[1]);//位置
glRotatef(re[i]+900
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4881 2011-05-30 15:40 基于OpenGL的3D射击游戏的设计与实现\anmobj.cpp
文件 1391 2011-05-20 08:37 基于OpenGL的3D射击游戏的设计与实现\anmobj.h
文件 43615 2011-05-30 15:40 基于OpenGL的3D射击游戏的设计与实现\BAISCOBJ.CPP
文件 4135 2011-05-24 10:11 基于OpenGL的3D射击游戏的设计与实现\BAISCOBJ.H
文件 31892 2005-04-06 06:23 基于OpenGL的3D射击游戏的设计与实现\BAISCOBJ1.CPP
文件 3510 2005-04-06 06:23 基于OpenGL的3D射击游戏的设计与实现\BAISCOBJ1.H
文件 2114220 2011-04-21 10:13 基于OpenGL的3D射击游戏的设计与实现\cs.rar
文件 8038 2011-05-30 15:40 基于OpenGL的3D射击游戏的设计与实现\GLFont.cpp
文件 913 2011-05-14 10:24 基于OpenGL的3D射击游戏的设计与实现\GLFont.h
文件 272518 2011-06-06 22:43 基于OpenGL的3D射击游戏的设计与实现\include.rar
文件 5172 2011-05-24 09:44 基于OpenGL的3D射击游戏的设计与实现\MathLib.cpp
文件 840 2003-03-16 19:12 基于OpenGL的3D射击游戏的设计与实现\MathLib.h
文件 2058 2011-05-22 10:06 基于OpenGL的3D射击游戏的设计与实现\mdlobj.cpp
文件 792 2005-05-06 23:42 基于OpenGL的3D射击游戏的设计与实现\mdlobj.h
文件 877 2009-03-18 21:15 基于OpenGL的3D射击游戏的设计与实现\myclock.h
文件 8873 2011-05-22 10:27 基于OpenGL的3D射击游戏的设计与实现\OpenGL.cpp
文件 1055 2011-05-18 21:25 基于OpenGL的3D射击游戏的设计与实现\OpenGL.h
文件 1245 2005-04-06 05:54 基于OpenGL的3D射击游戏的设计与实现\ReadMe.txt
文件 299 2011-05-14 10:01 基于OpenGL的3D射击游戏的设计与实现\StdAfx.cpp
文件 2801 2011-05-24 17:15 基于OpenGL的3D射击游戏的设计与实现\StdAfx.h
文件 4481536 2011-06-06 22:45 基于OpenGL的3D射击游戏的设计与实现\基于OpenGL的3D游戏设计.doc
文件 4728 2011-05-22 23:08 基于OpenGL的3D射击游戏的设计与实现\游戏进度保存.cpp
文件 5341 2011-05-20 09:11 基于OpenGL的3D射击游戏的设计与实现\游戏进度保存.dsp
文件 549 2005-04-06 05:54 基于OpenGL的3D射击游戏的设计与实现\游戏进度保存.dsw
文件 156672 2011-06-03 16:32 基于OpenGL的3D射击游戏的设计与实现\游戏进度保存.ncb
文件 51712 2011-06-03 16:32 基于OpenGL的3D射击游戏的设计与实现\游戏进度保存.opt
文件 983 2011-06-03 10:49 基于OpenGL的3D射击游戏的设计与实现\游戏进度保存.plg
文件 4096 2011-05-24 09:45 基于OpenGL的3D射击游戏的设计与实现\游戏进度保存.suo
文件 11256 2011-05-24 08:45 基于OpenGL的3D射击游戏的设计与实现\游戏进度保存.vcproj
文件 1423 2011-05-24 09:24 基于OpenGL的3D射击游戏的设计与实现\游戏进度保存.vcproj.20100208-0939.Administrator.user
............此处省略5个文件信息
- 上一篇:C++与access开发的DOS版学生成绩管理系统
- 下一篇:推箱子 源代码 MFC
相关资源
- 弹球 OPenGL C++
- DEM——三维地形可视化
- 计算机图形学OPENGL 动画代码
- OpenGL海量demo及源码&附带chm手册集合包
- 中国象棋引擎ZWM 版本0.2.(VC++源码)
- opengl对stl文件的读取及显示。
- opengl画了一个简单的3D模型
- 几个c++游戏源代码
- OpenGL课程设计(c++)设计课程设计-三
- OpengGL三维立方体纹理贴图
- VC++和OpenGL读取3DS文件并显示的完整源
- 用c++做数据曲线和函数曲线
- c++太空射击代码Opengl
- openg读取3ds文件,含view3ds软件
- C++游戏开发指南C++ Game Development Cook
- 基于OpenGL的DEM显示
- C语言 opengl 3d 游戏开发 源码
- OpenGL实现鼠标绕任意轴旋转/平移/缩放
- MFC+OpenGL 读取并显示STL三维模型
- opengl VisualC++
- Opengl VC++演示六轴机械手
- opengl光照旋转交互
- OpenGL+MFC工程具备鼠标操作
- 基于MFC用OpenGL画得一个三棱柱
- OpenGL三维图形程序设计及源码 c++
- 点云数据处理---用opengl绘制显示并操
- 3DSLoader.rar
- 三维五角星
- 虚拟三维场景opengl编程
- opengl MFC时钟动画
评论
共有 条评论