cocos2dx-音乐音效

前端之家收集整理的这篇文章主要介绍了cocos2dx-音乐音效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

声 明


本教程仅用于初学cocos2dx同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用cocos2dx版本为2.1.4。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。

gl.paea.cn版权所有。



大家好,欢迎回到“和屌丝一起学cocos2dx”系列教程,上节我们说到了“碰撞”不知道大家有没有做出效果来呢,这里还是提示一下,圆形碰撞是很常用的哦。下面我们就开始今天的课程吧,又是一个最常用的东东--音乐音效。

【一】:特性

在cocos2dx开发中,我们音乐的选择也是有区别的,因为虽然cocos2dx实现了跨平台,但是各个平台之间的标准还是乱七八糟。没有人任何机构来统一规范,所以导致我们的音乐要针对客户端准备。在游戏中,我们能听到的音乐有2中,1是长长的背景音乐,2是短短的特效音效。那么这两种选用什么格式的最好呢?

背景音乐

android Mp3 MID WAV

ios Mp3 CAF

音效

android OGG(仅支持

ios CAF

这里只是推荐不是支持列表哦,可以看出来,Mp3由于他的特性所以最适合做背景音乐,而音效由于各个平台的不同,所以最佳选择也就不同了。当然了,这都不是问题,因为就算你们各个平台直接不能互通,万能的中国人早在十几年前就发明了音乐格式转换了,比如格式工厂等等,丫丫,小菜儿。

【二】:函数

preloadBackgroundMusic(音乐路径); //预加载音乐

playBackgroundMusic(音乐路径,是否重复); //播放音乐

pauseBackgroundMusic() //暂停

stopBackgroundMusic() //停止

resumeBackgroundMusic() //继续播放

rewindBackgroundMusic() //从头播放

isBackgroundMusicPlaying() //获取背景音乐是否在播放

getBackgroundMusicVolume() //获取音量

setBackgroundMusicVolume() //设置音量

preloadEffect(音效路径) //预加载音效

unloadEffect(音效路径) //释放音效文件

playEffect(音效路径,是否重复) //播放音效

stopEffect(音效ID) //停止

stopAllEffects() //全部停止

pauseEffect(音效ID) //暂停

pauseAllEffects() //全部暂停

resumeEffect(音效ID) //继续播放

resumeAllEffects() //全部继续播放

getEffectsVolume() //获取音量

setEffectsVolume() //设置音量

【三】:示例

1.新建项目 musicdemo

2.加载3张图片

musicdemo.h

1.包含音乐类和扩展类

#include "SimpleAudioEngine.h"

#include "cocos-ext.h"

2.引用命名空间cocos2d::extension

using namespace cocos2d::extension;

3.写3个对应的回调函数

void playmusic(CCObject * sender,CCControlEvent);

void pausemusic(CCObject * sender,242)">void stopmusic(CCObject * sender,192)">musicdemo.cpp

1.添加3个按钮

//创建3个按钮

CCScale9Sprite* sp1 = CCScale9Sprite::create("1.png");

CCScale9Sprite* sp2 = CCScale9Sprite::create("2.png");

CCScale9Sprite* sp3 = CCScale9Sprite::create("3.png");

CCControlButton * b1=CCControlButton::create(sp1);

CCControlButton * b2=CCControlButton::create(sp2);

CCControlButton * b3=CCControlButton::create(sp3);

b1->setPosition(ccp(mysize.width/2-100,mysize.height/2+100));

b2->setPosition(ccp(mysize.width/2,242)">b3->setPosition(ccp(mysize.width/2+100,242)">b1->addTargetWithActionForControlEvents(

this,

cccontrol_selector(HelloWorld::playmusic),242)"> CCControlEventTouchDown

);

b2->addTargetWithActionForControlEvents(

cccontrol_selector(HelloWorld::pausemusic),242)">b3->addTargetWithActionForControlEvents(

cccontrol_selector(HelloWorld::stopmusic),242)">b1->setPreferredSize(ccp(57,57));

b2->setPreferredSize(ccp(57,242)">b3->setPreferredSize(ccp(57,242)">this->addChild(b1,1);

this->addChild(b2,242)">this->addChild(b3,Tahoma; line-height:21px"> 2.根据当前系统判断预加载文件

这里注意一下,在win下"/music/winback.mid"也可以找到这个音乐,但是android下不行,所以要注意开头不要加“/”

#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)

#define MUSIC_FILE "music/winback.mid"

#elif (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX )

#define MUSIC_FILE "none.ogg"

#else

#define MUSIC_FILE "music/androidback.mp3"

#endif

3.预加载音乐,设置音量

//加载音乐

SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(MUSIC_FILE);

//设置默认音量

SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(1);

4.完成3个回调函数

void HelloWorld::playmusic(CCObject * sender,CCControlEvent){

SimpleAudioEngine::sharedEngine()->playBackgroundMusic(MUSIC_FILE,true);

}

void HelloWorld::pausemusic(CCObject * sender,242)"> SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();

void HelloWorld::stopmusic(CCObject * sender,242)"> SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();

好了,最后我们在win上试一下,我也打好了apk包,大家可以直接下载试一下android的环境

猜你在找的Cocos2d-x相关文章