cocos2dx gaf 修改源码,让其默认播放声音

为了在使用cocos2d-x的JavaScript版本时默认播放GAF资源的声音,博主选择直接修改源码,省去了手动设置delegate的步骤。详细记录了这一修改过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

flash 有播放声音时,需要手动设置一个delgate.

可是我的客户端用的cocos js,为了图省事,直接修改源码
mark一下
以下补丁..

------------ frameworks/runtime-src/Classes/gafplayer/GAFAsset.cpp ------------
index e6c8ddf..0c75313 100644
@@ -11,7 +11,7 @@
 #include "GAFLoader.h"

 #include "json/document.h"
-
+#include "AudioEngine.h"
 NS_GAF_BEGIN

 //static float  _desiredCsf = 1.f;
@@ -97,6 +97,15 @@ GAFAsset* GAFAsset::create(const std::string& gafFilePath, GAFTextureLoadDelegat
     if (ret && ret->initWithGAFFile(gafFilePath, delegate, customLoader))
     {
         ret->autorelease();
+       //delgate sound
+       ret->setSoundDelegate([ret](GAFSoundInfo* sound, int32_t repeat, GAFSoundInfo::SyncEvent syncEvent){
+           std::string path = ret->getGAFFileName();
+           int slashPos = path.find_last_of("/");
+           path = path.substr(0, slashPos + 1);
+           path.append(sound->source);
+
+           cocos2d::experimental::AudioEngine::play2d(path, repeat == -1);
+       });
         return ret;
     }
     CC_SAFE_RELEASE(ret);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值