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

📄 audio.cpp

📁 打飞机的过关游戏(linux)
💻 CPP
字号:
#include "audio.h"

void playSound(int sid)
{
	if ((!currentGame.useSound) || (!engine.useAudio))
		return;

	switch(sid)
	{
		case SFX_DEATH:
		case SFX_CLOCK:
		case SFX_FLY:
		case SFX_SHIELDUP:
		case SFX_PICKUP:
		case SFX_CLOAK:
		case SFX_PLASMA2:
		case SFX_PLASMA3:
			Mix_PlayChannel(-1, sound[sid], 0);
			break;
		case SFX_PLASMA:
		case SFX_LASER:
			Mix_PlayChannel(0, sound[sid], 0);
			break;
		case SFX_ENERGYRAY:
		case SFX_MISSILE:
			Mix_PlayChannel(1, sound[sid], 0);
			break;
		case SFX_HIT:
			Mix_PlayChannel(4, sound[sid], 0);
			break;
		case SFX_EXPLOSION:
		case SFX_DEBRIS:
		case SFX_DEBRIS2:
			Mix_PlayChannel(3, sound[sid], 0);
			break;
	}
}

Mix_Chunk *loadSound(char *filename)
{
	Mix_Chunk *chunk;

	#if USEPACK
	unpack(filename, PAK_WAV);
	chunk = Mix_LoadWAV_RW(engine.sdlrw, 1);
	#else
	chunk = Mix_LoadWAV(filename);
	#endif

	return chunk;
}

void loadMusic(char *filename)
{
	if (Mix_PlayingMusic())
		Mix_HaltMusic();

	if (engine.music != NULL)
		Mix_FreeMusic(engine.music);

	#if USEPACK
	unpack(filename, PAK_MOD);

	char musicFilename[PATH_MAX];
	strcpy(musicFilename, "");
	sprintf(musicFilename, "%smusic.mod", engine.userHomeDirectory);

	engine.music = Mix_LoadMUS(musicFilename);
	#else
	engine.music = Mix_LoadMUS(filename);
	#endif
}

void playRandomTrack()
{
	if ((!currentGame.useMusic) || (!engine.useAudio))
		return;

	int tracks = 0;

	char track[][30] = {
	"music/Frantic.mod", "music/Artificial.mod", "music/Lunatic.mod", "music/ToxicFriend.mod",
	"music/DigitalInferno.mod", "music/TempoTrance.mod", "music/IntoTheMachine.mod"
	};

	switch(currentGame.system)
	{
		case 0:
			tracks = 3;
			break;
		case 1:
			tracks = 5;
			break;
		case 2:
		case 3:
			tracks = 7;
			break;
	}

	switch(currentGame.area)
	{
		case 5:
		case 11:
		case 18:
		case 25:
			loadMusic("music/HardTranceDub.mod");
			break;
		case 26:
			loadMusic("music/LoopsAndTings.mod");
			break;
		default:
			loadMusic(track[rand() % tracks]);
	}

	Mix_PlayMusic(engine.music, -1);
}

⌨️ 快捷键说明

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