• 大小: 7.79MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: C/C++
  • 标签: DX9.0  C++  天空盒  

资源简介

加载有天空盒模型及动画效果的射击小游戏, 希望大家会对它感到满意

资源截图

代码片段和文件信息

#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个文件信息

评论

共有 条评论