我可以支持Cocos2D-iPhone游戏中的VoiceOver吗?

4
我正在制作一个游戏,玩家通过动作反应声音——因为视觉元素不需要来播放它,而且许多人闭着眼玩,这似乎很遗憾,不能完全支持VoiceOver。我目前正在使用Cocos2D-iPhone和CocosDenshion进行音频处理,并开始思考如何构建菜单系统以选择关卡和配置控件。
在Cocos2D的菜单系统中支持VoiceOver是否相对容易,还是我应该尝试在UIKit中创建我的菜单,虽然我没有使用过UIKit?
2个回答

4
我不知道Cocos的菜单系统是否支持VoiceOver,但是如果不支持,您可能可以自己添加所需功能,而无需深入涉及大量的UIKit工作。您需要做的就是创建一个UIView子类,在您的应用程序启动时将其添加到主窗口中。然后使用UIAccessibilityContainer协议和UIAccessibilityPostNotification调用来允许用户通过VoiceOver与您的游戏进行交互。
UIAccessibilityContainer协议使您能够告知VoiceOver屏幕上当前有哪些界面元素、它们的标签、特征等。然后,VoiceOver使用这些信息让用户在元素之间滑动并获取反馈。
当游戏状态发生变化时,您可以更改该协议返回的内容,然后发出UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,nil)来通知VoiceOver屏幕布局已更改。而且,如果您想通过VoiceOver说点什么,比如当游戏状态发生变化时,可以向发送不同的通知以说出一些文本:
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,“解锁成就!”。)

-3

不需要使用 UIKit 框架,您可以使用 cocos2d 的本地方法和类来实现此功能。

对于声音选项,我们有可以使用的 SimpleAudioEngine。您可以使用其类型为 ALuint 的 ID 区分声音。

ALuint soundEffectID;

//to start
soundEffectID=[[SimpleAudioEngine sharedEngine] playEffect:@"my sound"];
//to stop
[[SimpleAudioEngine sharedEngine] stopEffect:soundEffectID];

你需要管理这些效果,我认为你的问题就会得到解决。


SimpleAudioEngine与支持iOS设备中的VoiceOver导航有什么关系? - Blixxy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接