cocos2d-x【小菜在学习】体验之isBackgroundMusicPlaying对其影响

博主在学习Cocos2d-x游戏开发过程中遇到音乐控制的问题,通过使用`pauseBackgroundMusic()`无法正确切换背景音乐播放状态。经调试发现,改用`stopBackgroundMusic()`方法并结合`CCUserDefault`保存状态,能够有效解决该问题。

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

小弟刚学不久,似乎发现一小问题想看看大家是否一样,不对的地方请指正。

我实现的是点击可以关闭或开启音乐

在学习龙灵修之飞机游戏视频,照着其打代码发现

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

 

以上对于判断bool型CocosDenshion::SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()起不到改变其值的作用;

如我原来的代码

if (CocosDenshion::SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying())
 {
  CocosDenshion::SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
  CCUserDefault::sharedUserDefault()->setBoolForKey("Music",true);
 }else{
    CocosDenshion::SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic(); 
    CCUserDefault::sharedUserDefault()->setBoolForKey("Music",false);
}


 

发现一开始初始化有了音乐,我点击之后关闭或打开音乐后,断点调试后发现他一直不会进入else当中,及个人觉得

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

 

对bool型

CocosDenshion::SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()


起不到改变其值的作用,

及后来调试后发现改成

if (CocosDenshion::SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying())
 {
  CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(true);
//或者CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(false);
  CCUserDefault::sharedUserDefault()->setBoolForKey("Music",true);  
 }else{
  CCUserDefault::sharedUserDefault()->setBoolForKey("Music",false);
  CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("bgMusic.mp3");
 }


 

能改变

CocosDenshion::SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()


值及能实现点击关闭或打开音乐按钮,

小小问题跟大家交流下,有什么好方法实现的告诉下小菜我哈。

最后附上我照着龙灵修大哥打的代码(基本一样,可能有点偏差)http://download.youkuaiyun.com/detail/five50/5166446

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值