我正在制作一个游戏,玩家通过动作对声音作出反应 – 因为视觉元素不需要播放,许多人闭着眼睛玩耍,不完全与VoiceOver兼容似乎是一种耻辱.我目前正在使用Cocos2D-iPhone和CocosDenshion进行音频处理,现在我开始考虑如何构建菜单系统以选择级别和配置控件.
在Cocos2D的菜单系统中支持VoiceOver是否相当容易,或者我是否应该尝试在UIKit中创建我没有使用经验的菜单?
解决方法
我不知道Cocos的菜单系统是否支持VoiceOver,但如果没有,你可以自己添加你正在寻找的功能,而无需深入研究很多UIKit的工作.您需要做的就是创建一个UIView子类,当您的应用启动时,该子类将添加到您的主窗口中.然后使用UIAccessibilityContainer协议和UIAccessibilityPostNotification调用,允许用户通过VoiceOver与您的游戏进行交互.
UIAccessibilityContainer协议允许您通知VoiceOver屏幕上当前的界面元素,标签,特征等.然后,VoiceOver使用此信息让用户在元素之间滑动并获得对它们的反馈.
当您的游戏改变状态时,您可以更改协议发回的内容,然后发出一个
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,nil)
…通知VoiceOver屏幕布局已更改.并且只需通过VoiceOver说话,比如当你的游戏状态发生变化时,你可以发送不同的通知来说出一些文字:
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,@”Achievement unlocked!”);