⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sound.cpp

📁 this block game source
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////////////////////
// SOUND.CPP
/////////////////////////////////////////////////////////////////////////////////////////////
#include "sound.h"

LPDIRECTSOUND lpDS;
HSNDOBJ BlockHitSnd;
HSNDOBJ WallHitSnd;
HSNDOBJ BallHitSnd;
HSNDOBJ DeadSnd;
HSNDOBJ WonSnd;


/////////////////////////////////////////////////////////////////////////////////////////////
// InitSound
/////////////////////////////////////////////////////////////////////////////////////////////
BOOL InitSound(HWND hWnd)
{
	HRESULT rval;

	rval = DirectSoundCreate(NULL, &lpDS, NULL);
	if(rval != DS_OK) return FALSE;

	rval = lpDS->SetCooperativeLevel(hWnd, DSSCL_NORMAL);
	if(rval != DS_OK) return FALSE;

	BlockHitSnd = SndObjCreate(lpDS, "BLOCKHIT", 5);
	// if(BlockHitSnd == NULL) return FALSE;
	WallHitSnd = SndObjCreate(lpDS, "WallHit", 2);
	// if(WallHitSnd == NULL) return FALSE;
	BallHitSnd = SndObjCreate(lpDS, "BallHit", 5);
	// if(BallHitSnd == NULL) return FALSE;
	DeadSnd = SndObjCreate(lpDS, "Dead", 1);
	// if(DeadSnd == NULL) return FALSE;
	WonSnd = SndObjCreate(lpDS, "Won", 1);
	// if(WonSnd == NULL) return FALSE;

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////////////////////
// FiniSound
/////////////////////////////////////////////////////////////////////////////////////////////
void FiniSound()
{
	if(lpDS)
	{
		lpDS->Release();
		lpDS = NULL;
	}

	SndObjDestroy(BlockHitSnd);
	SndObjDestroy(WallHitSnd);
	SndObjDestroy(BallHitSnd);
	SndObjDestroy(DeadSnd);
	SndObjDestroy(WonSnd);
}

/////////////////////////////////////////////////////////////////////////////////////////////
// PlaySound
/////////////////////////////////////////////////////////////////////////////////////////////
void PlaySound(SOUNDS sound)
{
	switch(sound)
	{
		case SND_BLOCKHIT:
			SndObjPlay(BlockHitSnd, 0);
			break;
		case SND_WALLHIT:
			SndObjPlay(WallHitSnd, 0);
			break;
		case SND_BALLHIT:
			SndObjPlay(BallHitSnd, 0);
			break;
		case SND_DEAD:
			SndObjPlay(DeadSnd, 0);
			break;
		case SND_WON:
			SndObjPlay(WonSnd, 0);
			break;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -