• 大小: 5.99MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-27
  • 语言: C/C++
  • 标签: win32  opengl  c++  

资源简介

这个是外国人写的仿CS程序,跟真的CS非常相像,只可惜没有土匪、警察在里面。这里分享供大家学习用。

资源截图

代码片段和文件信息

#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);//创建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);//创建DirectSound对象;
if( hRes != DS_OK )
return;
m_bLoop=bLoop;
SetCooperativeLevel(hWnd);
//设置声音设备优先级别为“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;   //指向语音数据块的指针;
DWORD m_dwSize=0;      //WAVE文件中语音数据块的长度;
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分配内存,用来存放WAVE文件中的数据;
m_pMemory = GlobalAlloc (GMEM_FIXED dwSize);
fread(m_pMemory 1 dwSize filein);  //读取文件中的数据;
fclose(filein);

LPDWORD pdwpdwEnd;
DWORD dwRiffdwType dwLength;

//首先清空指针和变量以备使用
if (m_pFormat)           //格式块指针
m_pFormat = NULL;
if (m_pData)             //数据块指针类型:LPBYTE
m_pData = NULL;
if (m_dwSize)            //数据长度类型: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“;
//寻找格式块数据块位置及数据长度
pdwEnd = (DWORD *)((BYTE *) m_pMemory+dwLength -4);
bool m_bend=false;
while ((pdw < pdwEnd)&&(!m_bend))
//pdw文件没有指到文件末尾并且没有获取到声音数据时继续;
{
dwType = *pdw++;
dwLength = *pdw++;
switch (dwType)
{
case MAKEFOURCC(‘f‘ ‘m‘ ‘t‘ ‘ ‘)://如果为“fmt“标志;
if (!m_pFormat)//获取LPWAVEFORMATEX结构数据;
{
if (dwLength < sizeof (WAVEFORMAT))
return ;
m_pFormat = (LPWAVEFORMATEX) pdw;
}
break;
case MAKEFOURCC(‘d‘ ‘a‘ ‘t‘ ‘a‘)://如果为“data“标志;
if (!m_pData || !m_dwSize)
{
m_pData = (LPBYTE) pdw;//得到指向声音数据块的指针;
m_dwSize = dwLe

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件          0  2004-02-28 00:46  原代码\CIDevice.cpp

     文件        918  2004-12-01 18:34  原代码\CDSound.h

     文件       4937  2004-11-28 19:33  原代码\CDSound.cpp

     文件        358  2004-02-28 00:44  原代码\CIDevice.h

     文件      20019  2005-01-14 17:08  原代码\CMap.cpp

     文件       1950  2004-12-01 18:43  原代码\CMap.h

     文件      43639  2005-01-16 09:57  原代码\FiWorld.cpp

     文件       4347  2004-11-28 21:56  原代码\FiWorld.dsp

     文件        633  2004-02-28 02:09  原代码\FiWorld.dsw

     文件      99328  2005-01-16 09:59  原代码\FiWorld.ncb

     文件      52736  2005-01-16 09:59  原代码\FiWorld.opt

     文件       1505  2005-01-16 09:58  原代码\FiWorld.plg

     文件        171  2004-02-27 22:01  原代码\mssccprj.scc

     文件        144  2004-03-07 20:36  原代码\vssver.scc

     文件      33262  2004-11-30 07:49  原代码\Replay\replay.txt

     目录          0  2004-11-30 07:27  原代码\Replay

     文件       5825  2004-12-05 14:17  原代码\Maps\WorldM.txt

     文件      37008  2004-11-28 16:03  原代码\Maps\关于 WorldM 文件的说明.jpg

     文件       2415  2004-12-08 16:05  原代码\Maps\bbbb.txt

     文件        465  2004-12-08 16:06  原代码\Maps\cccc.txt

     文件      17728  2004-12-08 16:48  原代码\Maps\aaaa.txt

     文件       2195  2004-12-05 14:42  原代码\Maps\skybox.txt

     文件      70276  2004-12-08 16:26  原代码\Maps\oldmap.txt

     文件     620715  2004-12-08 16:48  原代码\Maps\juju.txt

     目录          0  2004-11-30 07:27  原代码\Maps

     文件    7656960  2000-10-31 15:39  原代码\Media\sierra.avi

     目录          0  2004-11-30 07:27  原代码\Media

     文件     196662  1999-11-28 19:00  原代码\Gfx\Mud0.bmp

     文件      66614  2000-10-31 15:31  原代码\Gfx\desertbk.bmp

     文件      66614  2004-02-24 23:36  原代码\Gfx\desertdn.bmp

............此处省略28个文件信息

评论

共有 条评论