資源簡介
加載有天空盒模型及動畫效果的射擊小游戲,
希望大家會對它感到滿意

代碼片段和文件信息
#include?“Bullet.h“
//構造函數
//入口參數1:D3D設備接口指針
//入口參數2:位置坐標向量
//入口參數3:初始方向向量
Bullet::Bullet(?LPDIRECT3DDEVICE9?pD3ddevice?
GameSound?*pGameSound
PCSTR?pFileName?
const?D3DXVECTOR3?&vPosition?
const?D3DXVECTOR3?&vDir?)?:?MeshManager(pD3ddevice)?
m_fPrimeSpeed(10.0f)?
m_fGrating(0.3f)
m_fGravityAcc(0.0008f)
m_vGravityDir(0.0f-1.0f0.0f)
{
m_pGameSound?=?pGameSound;
//讀取X文件
if(?FAILED(?LoadXFile(pFileName)?))
{
MessageBox(NULLTEXT(“LoadBulletXFile?is?Failed“)TEXT(“Error“)MB_OK);
exit(1);
}
//讀取紋理
if(?FAILED(?D3DXCreateTextureFromFile(?m_pD3ddevice?TEXT(“wow070.jpg“)?&m_pTexBullet?)?))
{
MessageBox(NULLTEXT(“CreateBulletTexture?is?Failed“)TEXT(“Error“)MB_OK);
exit(1);
}
m_vPosition?=?vPosition;
m_fCurrentSpeed?=?m_fPrimeSpeed;
m_fGravitySpeed?=?0.0f;
m_vDir?=?vDir;
m_vAlpha?=?D3DXVECTOR4(1.0f?1.0f?1.0f?1.0f);
m_bIsCollide?=?false;
m_bIsDisappear?=?false;
D3DXMatrixScaling(?&m_matScal?1.0f?1.0f?1.0f?);
D3DXVECTOR3?*pVB?=?NULL;
D3DXVECTOR3?vCenterPos;
m_pMesh->LockVertexBuffer(0?(PVOID*)&pVB);
if(FAILED(?D3DXComputeBoundingSphere(pVB
m_pMesh->GetNumVertices()
D3DXGetFVFVertexSize(m_pMesh->GetFVF())
&vCenterPos
&m_fRadius)?))
{
MessageBox(NULLTEXT(“ComputeBoundingSphere?is?Failed“)TEXT(“Error“)MB_OK);
exit(1);
}
//將半徑值減小一些
m_fRadius?-=?0.5f;
m_pMesh->UnlockVertexBuffer();
}
Bullet::~Bullet()
{
SAFE_RELEASE(m_pTexBullet);
}
//移動
//入口參數:無
//返回值:無
VOID?Bullet::Move(float?fTime)
{
fTime?*=?0.1f;
if(m_fCurrentSpeed?==?0.0f)
{
fTime?=?0.0f;
}
m_vDir?*=?(m_fCurrentSpeed+fTime);
D3DXVECTOR3?fTempGraDir?=?m_vGravityDir?*?(m_fGravitySpeed+fTime);
m_vDir?+=?fTempGraDir;
D3DXVec3Normalize(?&m_vDir?&m_vDir?);
m_fGravitySpeed?+=?m_fGravityAcc;
m_vPosition?+=?m_vDir;
}
//重新設置子彈的屬性
//入口參數1:新坐標的向量
//入口參數2:新的方向向量
//返回值:無
VOID?Bullet::Reset(?D3DXVECTOR3?vPos?D3DXVECTOR3?vDir?)
{
m_vPosition?=?vPos;
m_fCurrentSpeed?=?m_fPrimeSpeed;
m_fGravitySpeed?=?0.0f;
m_vDir?=?vDir; //子彈方向
m_vAlpha?=?D3DXVECTOR4(1.0f?1.0f?1.0f?1.0f); //透明值
m_bIsDisappear?=?false; //表示是否消失
m_bIsCollide?=?false; //表示是否撞墻
}
//子彈撞墻后改變狀態
//入口參數1:碰撞到的面的法線
//入口參數2:子彈碰撞的信息
//返回值:無
VOID?Bullet::ChangeState(?const?D3DXVECTOR3?&vNor?int?iFace?)
{
m_bIsCollide?=?true;
if(?iFace?==?CLMAP?)
{
//播放聲音
m_pGameSound->PlaySound(?TEXT(“BOUNCE“)?false?);
m_vDir?=?ReflectVector(vNor);
m_fGravitySpeed?=?0.0f; //增大子彈的重力速度
m_fCurrentSpeed?*=?m_fGrating; //減少子彈的速度
if(m_fCurrentSpeed?<=?0.002f)
{?
m_fCurrentSpeed?=?0.0f;
}
}
}
//繪制
//入口參數:無
//返回值:如函數調用成功則返回S_OK否則返回E_FAIL
HRESULT Bullet::Draw(VOID)
{
D3DXMATRIXA16?matTranf;
D3DXMatrixIdentity(&matTranf);
matTranf(30)?=?m_vPosition.x;
matTran
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????496195??2007-04-18?17:10??EasyGame\ammo.x
?????文件??????17134??2007-04-18?17:10??EasyGame\ammo_bounce.wav
?????文件??????45104??2007-04-18?17:10??EasyGame\ammo_fire.wav
?????文件???????4585??2007-05-16?13:52??EasyGame\Bullet.cpp
?????文件???????1682??2007-05-12?01:32??EasyGame\Bullet.h
?????文件???????4771??2007-05-11?23:22??EasyGame\CameraCraft.cpp
?????文件???????1707??2007-05-12?03:24??EasyGame\CameraCraft.h
?????文件???????1118??2007-05-12?00:58??EasyGame\DefaultHead.h
?????文件?????247330??2007-04-18?17:10??EasyGame\droid_destroyed.wav
?????文件????1531904??2007-05-16?14:44??EasyGame\EasyGame.exe
?????文件????1567744??2009-02-24?15:23??EasyGame\EasyGame.ncb
?????文件????????905??2007-04-27?21:01??EasyGame\EasyGame.sln
????..A..H.?????10240??2009-02-24?15:23??EasyGame\EasyGame.suo
?????文件???????4340??2007-04-30?00:30??EasyGame\EasyGame.vcproj
?????文件???????2249??2007-05-12?02:33??EasyGame\EnemyCraft.cpp
?????文件???????1232??2007-04-30?01:35??EasyGame\EnemyCraft.h
?????文件?????115822??2007-04-18?17:10??EasyGame\EvilDrone-low.x
?????文件??????13322??2007-04-18?17:10??EasyGame\EvilDrone_Diff.jpg
?????文件??????11234??2007-05-12?03:50??EasyGame\GameCanvas.cpp
?????文件???????1809??2007-04-30?01:01??EasyGame\GameCanvas.h
?????文件??????12261??2007-05-16?14:43??EasyGame\GameMap.cpp
?????文件???????1684??2007-05-16?14:39??EasyGame\GameMap.h
?????文件???????5110??2007-04-30?01:18??EasyGame\GameSound.cpp
?????文件????????663??2007-04-30?00:59??EasyGame\GameSound.h
?????文件????1008519??2007-04-26?00:46??EasyGame\gazebo01.x
?????文件??????12344??2003-06-03?19:58??EasyGame\height64.bmp
?????文件???????3420??2007-04-28?00:06??EasyGame\Input.cpp
?????文件???????1218??2007-04-27?10:28??EasyGame\Input.h
?????文件????????838??2007-04-25?21:07??EasyGame\Main.cpp
?????文件??????49208??2003-06-27?09:31??EasyGame\map128.bmp
............此處省略29個文件信息
評論
共有 條評論