cocos02:播放声音

游戏中来说声音有两种情况,一种是游戏的背景音,这种音乐时间较长。另一种就是类似怪物发出的声音,这种声音时间较短。这两种播放音乐的方式代码是不同的。

第一种:

先在.h文件中定义

class HelloWorld : public cocos2d::Layer

{

public:

bool is_paused;

// there's no 'id' in cpp, so we recommend returning the class instance pointer

static cocos2d::Scene* createScene();

// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone

virtual bool init();

void play(cocos2d::Object*pSender);//播放

void stop(cocos2d::Object*pSender);//停止

void pause(cocos2d::Object*pSender);//暂停

// implement the "static create()" method manually

CREATE_FUNC(HelloWorld);

};

然后进入.cpp文件

先导入#include "SimpleAudioEngine.h"

is_paused = false;

//开始

auto* label_play = Label::create("play","Arial",40);

auto *pLabel_play = MenuItemLabel::create(label_play, this, menu_selector(HelloWorld::play));

auto *button_play = Menu::create(pLabel_play, NULL);

button_play->setPosition(160, 180);

addChild(button_play);

//暂停

auto *label_pause = Label::create("pause", "Arial", 40);

auto *pLaebl_pause = MenuItemLabel::create(label_pause, this, menu_selector(HelloWorld::pause));

auto *button_pause = Menu::create(pLaebl_pause, NULL);

button_pause->setPosition(320,180);

addChild(button_pause);

//停止

auto *label_stop = Label::create("stop", "Arial", 40);

auto *pLabel_stop = MenuItemLabel::create(label_stop, this, menu_selector(HelloWorld::stop));

auto *button_stop = Menu::create(pLabel_stop, NULL);

button_stop->setPosition(480, 180);

addChild(button_stop);

之后编写方法

void HelloWorld::play(cocos2d::Object* pSender)

{

if (is_paused)

{

CocosDenshion::SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();

}

else

{

CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("music.mp3");

}

is_paused = false;

}

void HelloWorld::pause(cocos2d::Object* pSender)

{

is_paused = false;

CocosDenshion::SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();

}

void HelloWorld::stop(cocos2d::Object* pSender)

{

is_paused = false;

CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();

}

然后比较短的声音只需要把palyBackgroundMusic改成playEffect就可以了。我看书上还有一个钢琴的例子。。。先去吃饭。。耶

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容