cocos2dx 3.3 跑酷游戏 声音的加入

来源:互联网 发布:n的阶乘算法 编辑:程序博客网 时间:2024/06/17 03:38

声音同样使用了单例模式:

声音直接在其他文件中使用;

将声音头文件包进去,在与金币碰撞,跳起和落下时播放

#pragma once#include "cocos2d.h"#include "SimpleAudioEngine.h"//使用声音要包含的头文件#include "Def.h"//参数设定头文件USING_NS_CC;using namespace CocosDenshion;//使用声音要包含的命名空间class Sounder{public:static Sounder *getInstance();bool init();void playGold();//播放金币声音void playTouch();//播放跳起和落声音void playBackground();//播放背景void playJump();//弃。。。private:Sounder();~Sounder();static Sounder *shareSounder;};

#include "Sounder.h"Sounder* Sounder::shareSounder = NULL;Sounder *Sounder::getInstance(){if (shareSounder != NULL){shareSounder = new Sounder;//shareSounder->init();//改为在主场景中调用,避免第一次初始化时读取文件的卡顿}return shareSounder;}Sounder::Sounder(){}Sounder::~Sounder(){if (shareSounder){delete shareSounder;}}bool Sounder::init()//预读取声音文件{SimpleAudioEngine::getInstance()->preloadBackgroundMusic(MUSIC_BACKGROUND);SimpleAudioEngine::getInstance()->preloadEffect(MUSIC_GOLD);SimpleAudioEngine::getInstance()->preloadEffect(MUSIC_JUMP);SimpleAudioEngine::getInstance()->preloadEffect(MUSIC_TOUCH);return true;}void Sounder::playBackground(){SimpleAudioEngine::getInstance()->playBackgroundMusic(MUSIC_BACKGROUND,true);}void Sounder::playGold(){SimpleAudioEngine::getInstance()->playEffect(MUSIC_GOLD);}void Sounder::playJump(){SimpleAudioEngine::getInstance()->playEffect(MUSIC_JUMP);}void Sounder::playTouch(){SimpleAudioEngine::getInstance()->playEffect(MUSIC_TOUCH);}


0 0