当前位置: 首页 > 知识库问答 >
问题:

如何在精灵套件/目标C中添加“静音”按钮?

郎志
2023-03-14

我正在编写一个小的SpriteKit游戏,我想添加一个静音按钮,这样你就可以在玩我的游戏时听到自己的音乐。目前,我只是停止静音按钮所在的场景(主菜单)的音频播放。但是,即使音频播放停止,我的游戏仍然会自动停止用户音乐。我怎样才能防止这种情况发生?

此外,我想将静音按钮被按下的信息(位于主菜单中)传递到我的游戏场景,以便我也可以将音乐静音,我该如何做?基本上,我如何将一个变量值从一个场景传递到另一个场景?

共有1个答案

燕智
2023-03-14

我刚才做的是检查iPod播放器是否工作,并赋予它比游戏音乐更高的优先级。(即。检查ipod是否正在播放游戏音乐,因为如果您使用的是音频播放器,iPod音乐播放器通常会覆盖您的游戏音乐。

+ (bool) IsIpodPlaying{
    if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying
        || [[MPMusicPlayerController applicationMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying){
        NSLog(@"iPod IS playing");
        return true;
    }else{
        NSLog(@"iPod NOT playing");
        return false;
    }
}

显然,您可以对您的静音按钮做同样的事情。如果iPod正在播放,请忽略任何操作,否则请停止您的游戏音乐。

要在按下静音按钮时传递信息,您可以(按个人喜好顺序):

  • 将您的菜单场景设置为您的游戏场景的委托,并创建一个方法来启用或禁用声音(即用户:
  • 创建一个SoundControl单例类,该类具有启用和禁用声音方法,并随时随地访问它们。
  • 使用NSNotifiationCenter发送通知并在菜单中等待。
 类似资料:
  • 我刚刚为游戏塑造了我的角色,这是一个box2d动态身体: 可以给身体添加纹理或精灵吗?或者我把精灵的位置和我身体的位置一样?因此,它将覆盖身体的形状,并像实际的box2d身体一样移动。

  • 我正在使用Sprite Kit中的碰撞检测。它在起作用,防止我的精灵穿越路径。然而,我在didBeginContact中没有收到通知:而且我似乎无法控制物理引擎在发生碰撞时的响应。 我让各种汽车(SKSpriteNodes)使用SKAction followPath沿着以下路径行驶:as offset:oriento path:duration: 以前,如果两辆车相交,它们都会像往常一样继续行驶,

  • 快速开发工具类,用最简洁的命令实现想要的功能。辅助模拟开发。 纯Java,跨平台,模拟按键、鼠标点击、找图、找色,实现简单按键精灵的功能 DEMO演示  辅助开发配套工具:ScreenCapture.jar:  将指定文字发音读出: new TTSUtil().speak("这是要读出的文字内容"); 发送一条短信     SendPhoneMsgUtil.send("13011658091", 

  • 问题内容: 目前,每次按键时,精灵仅移动1个像素。按住左右键时,如何使水暖工精灵不断移动? 问题答案: 您可以使用pygame.key.get_pressed来做到这一点。 例:

  • 本文向大家介绍sprite-kit 向场景添加精灵,包括了sprite-kit 向场景添加精灵的使用技巧和注意事项,需要的朋友参考一下 示例 在SpriteKit中,Sprite由SKSpriteNode类(从继承SKNode)表示。 首先,如您的第一个SpriteKit游戏中所述,基于SpriteKit模板创建一个新的Xcode项目。 创建一个精灵 现在,您可以使用加载到Assets.xcass

  • 我是IOS开发的新手,目前在didBeginContact方法中遇到一些sprite工具包冲突问题。 如果一个碰撞的物理物体被移走了,我如何摆脱或者停止didBeginContact的运行?例:一颗子弹与两个重叠的敌人相撞。因为子弹击中第一个敌人并被摧毁,所以在第二个敌人上运行的碰撞检查抛出异常,因为子弹不再存在。 我试过检查nil和NSNULL值,但运气不好。我收到的错误代码是“线程1:EXC_