来到.m文件,首先看一下静态变量以及扩展类别的声明: #import "BaseLayer.h" #import "PublicArg.h" #import "SimpleAudioEngine.h" :CLICK_EFF]; //[[SimpleAudioEngine sharedEngine] preloadEffect:FAIL_EFF]; //[[SimpleAudioEngine = InGame) return; //[[SimpleAudioEngine sharedEngine]playEffect:PERSON_EFF]; sharedEngine] playBackgroundMusic:BG_MUSIC loop:YES]; [[SimpleAudioEngine sharedEngine]playEffect sharedEngine]stopBackgroundMusic]; [[SimpleAudioEngine sharedEngine]playEffect:CLICK_EFF];
#include "PianoScene.h" #include "SimpleAudioEngine.h" USING_NS_CC; Scene* Piano::createScene() { ::init()) return false; auto size = Director::getInstance()->getVisibleSize(); CocosDenshion::SimpleAudioEngine ::sharedEngine()->playEffect("1.mp3"); } void Piano::note2(cocos2d::Ref*) { CocosDenshion::SimpleAudioEngine ::sharedEngine()->playEffect("2.mp3"); } void Piano::note3(cocos2d::Ref*) { CocosDenshion::SimpleAudioEngine ::sharedEngine()->playEffect("3.mp3"); } void Piano::note4(cocos2d::Ref*) { CocosDenshion::SimpleAudioEngine
详细使用的API是SimpleAudioEngine。 SimpleAudioEngine有几个经常使用的函数: void preloadBackgroundMusic (const char *pszFilePath) 预处理背景音乐文件,将压缩格式的文件进行解压处理 以下代码是预处理背景音乐和音频: //初始化 背景音乐 SimpleAudioEngine::getInstance()->preloadBackgroundMusic(“sound/Jazz.mp3 ”); //初始化 音效 SimpleAudioEngine::getInstance()->preloadEffect(“sound/Blip.wav”); 这些预处理过程代码放置到什么地方比較适合呢 ::getInstance()->preloadBackgroundMusic(“sound/Jazz.mp3”); //初始化 音效 SimpleAudioEngine::getInstance(
#include "GameScene.h" #include "CardSprite.h" #include "ScoreBoard.h" #include "SimpleAudioEngine.h" Layer::init()) return false; CocosDenshion::SimpleAudioEngine::sharedEngine()->preloadEffect("1.mp3 if (xoffset > XOFFSET && abs(yoffset) <= YOFFSET) { if (moveRight()) { CocosDenshion::SimpleAudioEngine else if (xoffset < -XOFFSET && abs(yoffset) <= YOFFSET) { if(moveLeft()) { CocosDenshion::SimpleAudioEngine else if (yoffset > YOFFSET && abs(xoffset) <= XOFFSET) { if(moveUp()) { CocosDenshion::SimpleAudioEngine
:applicationDidEnterBackground() { Director::getInstance()->stopAnimation(); // if you use SimpleAudioEngine , it must be pause // SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); } //当电话完成,选择恢复游戏时 applicationWillEnterForeground() { Director::getInstance()->startAnimation(); // if you use SimpleAudioEngine , it must resume here // SimpleAudioEngine::getInstance()->resumeBackgroundMusic(); } 下面我们来看一下HelloWorld
来看看我们项目结构: 》》AppDelegate.cpp #include "AppDelegate.h" #include "CCLuaEngine.h" #include "SimpleAudioEngine.h USING_NS_CC; using namespace std; AppDelegate::AppDelegate() { } AppDelegate::~AppDelegate() { SimpleAudioEngine void AppDelegate::applicationDidEnterBackground() { Director::getInstance()->stopAnimation(); SimpleAudioEngine AppDelegate::applicationWillEnterForeground() { Director::getInstance()->startAnimation(); SimpleAudioEngine
1.进入场景后没有出现预期控件移动的效果 错误原因:没有调用父类的onEnter()方法 2.SimpleAudioEngine找不到 错误原因:没有导入#include “SimpleAudioEngine.h
在HelloWorld.h 中添加头文件和命名空间: [cpp] view plaincopy #include "SimpleAudioEngine.h" using namespace [cpp] view plaincopy SimpleAudioEngine::sharedEngine()->playBackgroundMusic("SpaceGame.wav",true); SimpleAudioEngine::sharedEngine()->preloadEffect("explosion_large.wav"); SimpleAudioEngine::sharedEngine 在触摸函数中添加 [cpp] view plaincopy SimpleAudioEngine::sharedEngine()->playEffect("Sounds/laser_ship.wav 发现linux版本不能正常编译,报错: fatal error: SimpleAudioEngine.h: No such file or directory compilation terminated
removeFromParentAndCleanup(true);//把上一个层关掉 CGlobalComm::getInstance()->setiGameLevel(iLevel);//设置游戏开始的关卡 CocosDenshion::SimpleAudioEngine
std::string sSoundName = StringUtils::format("sound/%s.wav", sBtnName.c_str()); CocosDenshion::SimpleAudioEngine
) return; else { frogDiv->getHurt(); if (frogDiv->dieJudge() == true) { CocosDenshion::SimpleAudioEngine
比如Director对象,创建Director::getInstance().获取的都是同一个对象,方便统一管理 又比如,音频处理对象: SimpleAudioEngine::getInstance
-------------------------加入背景音乐----------------------------------------------- --循环播放背景音乐 --SimpleAudioEngine --SimpleAudioEngine:sharedEngine():preloadEffect("effect1.wav"); --或者 local effectPath = CCFileUtils
改为 long 即可 (原理可参见本文的第一张图) 我遇到的主要问题是 Undefined symbols for architecture arm64: "CocosDenshion::SimpleAudioEngine
新版本中使用CCSence 关于OALSimpleAudio 旧版本中的SimpleAudioEngine音效类在3.0新版中被替换为OALSimpleAudio 关于CCAction 在cocos2d
为此,在其他#include语句之后,将以下代码添加到HelloWorldScene.cpp的顶部: using namespace CocosDenshion; 这将导入SimpleAudioEngine 现在,在return语句之前,将以下行添加到HelloWorld::init的末尾: SimpleAudioEngine::getInstance()->playBackgroundMusic(BACKGROUND_MUSIC_SFX 至于声音效果,请将以下行添加到HelloWorld::onTouchBegan的return语句上方: SimpleAudioEngine::getInstance()->playEffect(PEW_PEW_SFX
HelloWorldScene.cpp #include "HelloWorldScene.h" #include "SimpleAudioEngine.h" USING_NS_CC; Scene*