資源簡(jiǎn)介
小弟的畢業(yè)設(shè)計(jì),老師給了個(gè)優(yōu)秀。是一款基于opengl的3D射擊游戲,類似cs.主要用到計(jì)算機(jī)圖形學(xué)、c++、opengl的一些相關(guān)知識(shí),有文檔。程序需要做一點(diǎn)配置才能運(yùn)行,中國(guó)普通本科計(jì)算機(jī)專業(yè)的學(xué)生可能用一周的時(shí)間才能讓該程序運(yùn)行起來(lái),如果你是一個(gè)平時(shí)只會(huì)玩游戲和泡妞的菜鳥(niǎo),最好不要下這個(gè)東西。

代碼片段和文件信息
//?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)//對(duì)象的移動(dòng)
{ float?stx=.5fstz=.5f; //走步長(zhǎng)
float?qx=man[i].qd[0]-man[i].zd[0]; //x當(dāng)前,目標(biāo)位置差
float?qz=man[i].qd[1]-man[i].zd[1]; //z當(dāng)前,目標(biāo)位置差
float?qxa=abs(qx); //x位置差絕對(duì)值
float?qza=abs(qz); //z位置差絕對(duì)值
if((int)qx==0&&(int)qz==0) return?true; //為0沒(méi)動(dòng)(到達(dá))返回
if(qxa if(qza if((int)qx!=0)?man[i].qd[0]-=qxa/qx*stx; //當(dāng)前位置加步長(zhǎng)
if((int)qz!=0)?man[i].qd[1]-=qza/qz*stz; //[qya/qy]單位絕對(duì)值
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計(jì)數(shù)指針加一
if(counter[i]>4) //用于動(dòng)作延時(shí)
{ counter[i]=0; //模型i計(jì)數(shù)置0?
if(man[i].dz!=19)?frame[i]++; //是活的動(dòng)作序列號(hào)+1
else?{frame[i]=man[i].death;}
if(man[i].dz==1) //跑動(dòng)中
{if(manmove(i)==true) //到目標(biāo)點(diǎn)
?{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]; //隨機(jī)選取一個(gè)動(dòng)作
??frame[i]=anim[0][man[i].dz].start;//取被選取動(dòng)作的開(kāi)始幀
?}
}
if(frame[i]>anim[0][man[i].dz].end)?//到動(dòng)作尾幀了嗎?
{?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]; //隨機(jī)選取一個(gè)動(dòng)作
??if(rand()%10==0) //1/10的慨率
{man[i].dz=1; //跑
?man[i].zd[0]=RAND_COORD((MAP_W-1)*MAP_SCALE);//隨機(jī)目標(biāo)X分量
?man[i].zd[1]=RAND_COORD((MAP_W-1)*MAP_SCALE);//隨機(jī)目標(biāo)Z分量
}
}
??frame[i]=anim[0][man[i].dz].start;//取被選取動(dòng)作的開(kāi)始幀
}
}
///////////////////////////////////////////////////////////////////
glPushAttrib(GL_CURRENT_BIT);//保存現(xiàn)有顏色屬性
glPushMatrix();//glPopMatrix();
glTranslatef(man[i].qd[0]man[i].qd[2]?-man[i].qd[1]);//位置
glRotatef(re[i]+900
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????4881??2011-05-30?15:40??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\anmobj.cpp
?????文件???????1391??2011-05-20?08:37??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\anmobj.h
?????文件??????43615??2011-05-30?15:40??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\BAISCOBJ.CPP
?????文件???????4135??2011-05-24?10:11??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\BAISCOBJ.H
?????文件??????31892??2005-04-06?06:23??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\BAISCOBJ1.CPP
?????文件???????3510??2005-04-06?06:23??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\BAISCOBJ1.H
?????文件????2114220??2011-04-21?10:13??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\cs.rar
?????文件???????8038??2011-05-30?15:40??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\GLFont.cpp
?????文件????????913??2011-05-14?10:24??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\GLFont.h
?????文件?????272518??2011-06-06?22:43??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\include.rar
?????文件???????5172??2011-05-24?09:44??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\MathLib.cpp
?????文件????????840??2003-03-16?19:12??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\MathLib.h
?????文件???????2058??2011-05-22?10:06??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\mdlobj.cpp
?????文件????????792??2005-05-06?23:42??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\mdlobj.h
?????文件????????877??2009-03-18?21:15??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\myclock.h
?????文件???????8873??2011-05-22?10:27??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\OpenGL.cpp
?????文件???????1055??2011-05-18?21:25??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\OpenGL.h
?????文件???????1245??2005-04-06?05:54??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\ReadMe.txt
?????文件????????299??2011-05-14?10:01??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\StdAfx.cpp
?????文件???????2801??2011-05-24?17:15??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\StdAfx.h
?????文件????4481536??2011-06-06?22:45??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\基于OpenGL的3D游戲設(shè)計(jì).doc
?????文件???????4728??2011-05-22?23:08??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\游戲進(jìn)度保存.cpp
?????文件???????5341??2011-05-20?09:11??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\游戲進(jìn)度保存.dsp
?????文件????????549??2005-04-06?05:54??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\游戲進(jìn)度保存.dsw
?????文件?????156672??2011-06-03?16:32??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\游戲進(jìn)度保存.ncb
?????文件??????51712??2011-06-03?16:32??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\游戲進(jìn)度保存.opt
?????文件????????983??2011-06-03?10:49??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\游戲進(jìn)度保存.plg
?????文件???????4096??2011-05-24?09:45??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\游戲進(jìn)度保存.suo
?????文件??????11256??2011-05-24?08:45??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\游戲進(jìn)度保存.vcproj
?????文件???????1423??2011-05-24?09:24??基于OpenGL的3D射擊游戲的設(shè)計(jì)與實(shí)現(xiàn)\游戲進(jìn)度保存.vcproj.20100208-0939.Administrator.user
............此處省略5個(gè)文件信息
評(píng)論
共有 條評(píng)論