soundmanager.h

来自「吃豆子游戏源码」· C头文件 代码 · 共 101 行

H
101
字号
/**
 *	File	:	SoundManager.h
 *  Author	:	Kevin Lynx
 *	Date	:	2007/8/3
 */
#ifndef _SOUND_MANAGER_H_
#define _SOUND_MANAGER_H_

#include "Singleton.h"
#include <irrKlang.h>
#include <vector>

using std::vector;
using namespace irr;
using namespace irr::audio;

/**
 * SoundManager
 *
 * manage the sound / music in this game
 */
class SoundManager : public Singleton<SoundManager>
{
public:
	/**
	 * background music list
	 *
	 */
	typedef vector<std::string> tMusicList;

	/**
	 * sound effect type
	 *
	 */
	enum E_SND_TYPE
	{
		SND_DEATH_1,
		SND_DEATH_2,
		SND_EAT,
		SND_EXPLODE,
		SND_TAKE_BONUS,
		SND_LOGO,
		SND_COUNT
	};
public:
	/**
	 * Constructor
	 *
	 */
	SoundManager();

	/**
	 * Destructor
	 *
	 */
	~SoundManager();

	/** 
	 * init
	 *
	 * @param g_volume global volume
	 */
	bool	init( float g_volume );

	/**
	 * update
	 *
	 * when one music is end, it will play next in the list
	 * the param is the camera's properties , for 3d sound
	 */
	void	update( const vector3df &pos, const vector3df &lookat );

	/** 
	 * loadMusicList
	 *
	 */
	bool	loadMusicList( const char *file );

	/**
	 * playNextMusic
	 *
	 * play a new music in the music list
	 */
	void	playNextMusic();

	/**
	 * playSound
	 *
	 */
	void	playSound( int sndType, const vector3df pos );
	void	playSound( int sndType );

private:
	ISoundEngine *mSndEngine;
	tMusicList    mMusicList;

	ISound *mCurMusic;
};

#endif //end _SOUND_MANAGER_H_

⌨️ 快捷键说明

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