我正在制作一款游戏,玩家通过动作对声音作出反应 - 因为视觉元素不需要播放,许多人闭着眼睛玩,看起来很难完全与VoiceOver兼容。我目前正在使用Cocos2D-iPhone和CocosDenshion进行音频处理,现在我开始考虑如何构建菜单系统来选择级别和配置控件。
在Cocos2D的菜单系统中支持VoiceOver是否相当容易,或者我是否应该尝试在UIKit中创建我没有使用经验的菜单?
答案 0 :(得分:4)
我不知道Cocos的菜单系统是否支持VoiceOver,但如果没有,你可以自己添加你正在寻找的功能,而不必深入研究很多UIKit
工作。您需要做的就是创建一个UIView
子类,当您的应用启动时,该子类会添加到您的主窗口中。然后使用UIAccessibilityContainer
协议和UIAccessibilityPostNotification
来电,以允许用户通过VoiceOver与您的游戏进行互动。
UIAccessibilityContainer
协议允许您通知VoiceOver屏幕上当前有哪些界面元素,它们的标签,特征等。然后VoiceOver使用此信息让用户在元素之间滑动并获得对它们的反馈。
当您的游戏更改状态时,您可以更改该协议发回的内容,然后发出
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,nil)
...通知VoiceOver屏幕布局已更改。只需通过VoiceOver说话,比如当你的游戏状态发生变化时,你可以发送不同的通知来说出一些文字:
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,@“成就解锁!”);
答案 1 :(得分:-3)
无需使用UIKit
框架,您可以使用cocos2d
本机方法和类来实现此目的。
对于声音选项,我们有SimpleAudioEngine可以使用。您可以使用ALuint
类型的ID来区分声音。
ALuint soundEffectID;
//to start
soundEffectID=[[SimpleAudioEngine sharedEngine] playEffect:@"my sound"];
//to stop
[[SimpleAudioEngine sharedEngine] stopEffect:soundEffectID];
你必须管理这些效果,我认为你的问题将会得到解决。