資源簡介
CS的場景實(shí)現(xiàn),帶碰撞檢測,簡單射擊2維目標(biāo)

代碼片段和文件信息
#include?“CDSound.h“
CDSound::CDSound()
{
//?TODO:?add?construction?code?here
//?Place?all?significant?initialization?in?InitInstance
HRESULT?hRes;
m_lpDirectSound=NULL;
m_lpDSoundBuffer=NULL;
m_bLoop=false;
hRes?=?::DirectSoundCreate(0?&m_lpDirectSound?0);//創(chuàng)建DirectSound對象;
if(?hRes?!=?DS_OK?)
return;
}
CDSound::CDSound(HWND?hWndchar*?filenamebool?bPlaybool?bLoop)
{
//?TODO:?add?construction?code?here
//?Place?all?significant?initialization?in?InitInstance
HRESULT?hRes;
m_lpDirectSound=NULL;
m_lpDSoundBuffer=NULL;
m_bLoop=bLoop;
hRes?=?::DirectSoundCreate(0?&m_lpDirectSound?0);//創(chuàng)建DirectSound對象;
if(?hRes?!=?DS_OK?)
return;
m_bLoop=bLoop;
SetCooperativeLevel(hWnd);
//設(shè)置聲音設(shè)備優(yōu)先級別為“NORMAL“;
OpenSoundFile(filename);
if(bPlay)
Play();
}
CDSound::~CDSound()
{
//?TODO:?add?construction?code?here
//?Place?all?significant?initialization?in?InitInstance
}
void?CDSound::OpenSoundFile(char*?filename)
{
//?TODO:?add?construction?code?here
//?Place?all?significant?initialization?in?InitInstance
LPVOID?lpPtr1;?????????//指針1;
LPVOID?lpPtr2;?????????//指針2;
HRESULT?hResult;
DWORD?dwLen1dwLen2;
LPVOID?m_pMemory;??????//指向WAVE文件的指針
LPWAVEFORMATEX?m_pFormat=NULL;?//LPWAVEFORMATEX類型指針;
LPVOID?m_pData=NULL;???//指向語音數(shù)據(jù)塊的指針;
DWORD?m_dwSize=0;??????//WAVE文件中語音數(shù)據(jù)塊的長度;
FILE?*filein;
DWORD?dwSize;//存放WAV文件長度;
//打開sound.wav文件;
filein=fopen(filename?“rt“);
//fseek():?將?filein?所指文件的位置指針移動到以?0?為基址,
//?????????SEEK_END?為偏移量的位置
fseek(filein0SEEK_END);??//移動到WAVE文件中存放文件長度的地方
dwSize?=?ftell(filein);????//獲取WAVE文件長度
fseek(filein0SEEK_SET);??//定位到打開的WAVE文件文件頭;
int?j?=?ftell(filein);?????//?j???????
//為m_pMemory分配內(nèi)存,用來存放WAVE文件中的數(shù)據(jù);
m_pMemory?=?GlobalAlloc?(GMEM_FIXED?dwSize);
fread(m_pMemory?1?dwSize?filein);??//讀取文件中的數(shù)據(jù);
fclose(filein);
LPDWORD?pdwpdwEnd;
DWORD?dwRiffdwType?dwLength;
//首先清空指針和變量以備使用
if?(m_pFormat)???????????//格式塊指針
m_pFormat?=?NULL;
if?(m_pData)?????????????//數(shù)據(jù)塊指針類型:LPBYTE
m_pData?=?NULL;
if?(m_dwSize)????????????//數(shù)據(jù)長度類型:DWORD
m_dwSize?=?0;
pdw?=?(DWORD?*)?m_pMemory;
dwRiff?=?*pdw++;
dwLength?=?*pdw++;
dwType?=?*pdw++;
if?(dwRiff?!=?MAKEFOURCC?(‘R‘?‘I‘?‘F‘?‘F‘))
return?;//判斷文件頭是否為“RIFF“字符;
if?(dwType?!=?MAKEFOURCC?(‘W‘?‘A‘?‘V‘?‘E‘))
return?;//判斷文件格式是否為“WAVE“;
//尋找格式塊數(shù)據(jù)塊位置及數(shù)據(jù)長度
pdwEnd?=?(DWORD?*)((BYTE?*)?m_pMemory+dwLength?-4);
bool?m_bend=false;
while?((pdw? //pdw文件沒有指到文件末尾并且沒有獲取到聲音數(shù)據(jù)時繼續(xù);
{
dwType?=?*pdw++;
dwLength?=?*pdw++;
switch?(dwType)
{
case?MAKEFOURCC(‘f‘?‘m‘?‘t‘?‘?‘)://如果為“fmt“標(biāo)志;
if?(!m_pFormat)//獲取LPWAVEFORMATEX結(jié)構(gòu)數(shù)據(jù);
{
if?(dwLength? return?;
m_pFormat?=?(LPWAVEFORMATEX)?pdw;
}
break;
case?MAKEFOURCC(‘d‘?‘a(chǎn)‘?‘t‘?‘a(chǎn)‘)://如果為“data“標(biāo)志;
if?(!m_pData?||?!m_dwSize)
{
m_pData?=?(LPBYTE)?pdw;//得到指向聲音數(shù)據(jù)塊的指針;
m_dwSize?=?dwLe
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4937??2010-04-22?19:43??cs\CDSound.cpp
?????文件????????918??2010-04-22?19:43??cs\CDSound.h
?????文件??????????0??2010-04-22?19:43??cs\CIDevice.cpp
?????文件????????358??2010-04-22?19:43??cs\CIDevice.h
?????文件??????20026??2010-05-04?02:45??cs\CMap.cpp
?????文件???????1950??2010-05-04?01:53??cs\CMap.h
?????文件??????32812??2001-04-21?14:59??cs\Data\Coke.tga
?????文件?????262188??2001-04-21?15:31??cs\Data\Explode.tga
?????文件???????3126??2000-03-16?18:23??cs\Data\Particle.bmp
????..A.SH.??????5120??2010-05-04?12:59??cs\Data\Thumbs.db
?????文件??????17462??2010-04-22?19:45??cs\Debug\CDSound.obj
?????文件??????????0??2010-04-22?19:45??cs\Debug\CDSound.sbr
?????文件??????29746??2010-05-04?02:45??cs\Debug\CMap.obj
?????文件??????????0??2010-05-04?02:45??cs\Debug\CMap.sbr
?????文件????4817920??2010-05-04?14:39??cs\Debug\FiWorld.bsc
?????文件?????270416??2010-05-04?14:39??cs\Debug\FiWorld.exe
?????文件?????570440??2010-05-04?14:39??cs\Debug\FiWorld.ilk
?????文件??????83552??2010-05-04?14:39??cs\Debug\FiWorld.obj
?????文件????5558228??2010-05-04?02:46??cs\Debug\FiWorld.pch
?????文件?????787456??2010-05-04?14:39??cs\Debug\FiWorld.pdb
?????文件??????????0??2010-05-04?14:39??cs\Debug\FiWorld.sbr
?????文件??????21718??2010-05-03?18:32??cs\Debug\GLFont.obj
?????文件??????????0??2010-05-03?18:32??cs\Debug\GLFont.sbr
?????文件??????21555??2010-05-03?18:30??cs\Debug\OpenGL.obj
?????文件?????827043??2010-05-03?18:30??cs\Debug\OpenGL.sbr
?????文件?????230400??2010-05-04?15:39??cs\Debug\vc60.idb
?????文件?????102400??2010-05-04?14:39??cs\Debug\vc60.pdb
?????文件??????60111??2010-05-04?14:39??cs\FiWorld.cpp
?????文件???????4347??2010-04-22?19:43??cs\FiWorld.dsp
?????文件????????633??2010-04-22?19:43??cs\FiWorld.dsw
............此處省略54個文件信息
評論
共有 條評論