• 大小: 5.58MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-26
  • 语言: C/C++
  • 标签: OpenGL  C++游戏  

资源简介

小弟的毕业设计,老师给了个优秀。是一款基于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个文件信息

评论

共有 条评论