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

我正在制作一个游戏,玩家通过动作对声音做出反应,因为视觉元素不需要演奏,许多玩家闭着眼睛,所以不能完全兼容VoiceOver。 我目前正在使用Cocos2D-iPhone和CocosDenshion进行audio处理,现在开始考虑如何构build我的菜单系统来select级别和configuration控件。

在Cocos2D的菜单系统中支持VoiceOver是否合理,或者我应该尝试在UIKit中创build我没有经验的菜单?

我不知道Cocos的菜单系统是否支持VoiceOver,但是如果不支持,你可以添加自己想要的function,而不需要深入UIKit工作。 所有你需要做的是创build一个UIView子类,当你的应用程序启动时被添加到你的主窗口。 然后使用UIAccessibilityContainer协议和UIAccessibilityPostNotification调用来允许用户通过VoiceOver与您的游戏进行交互。

通过UIAccessibilityContainer协议,您可以通过VoiceOver通知VoiceOver当前屏幕上的界面元素,标签及其特征等。VoiceOver然后使用此信息让用户在元素之间滑动,并获取有关这些元素的反馈。

当你的游戏改变状态时,你可以改变协议发回的内容,然后发出一个

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,nil)

…通知VoiceOver屏幕布局已更改。 只要通过VoiceOver讲话,说你的游戏状态发生了变化,你可以发送不同的通知来说一些文字:

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,@“Achievement unlocked!”);

没有必要去与UIKit框架,你可以去用cocos2d本地方法和类来实现这一点。

对于声音选项,我们有可以使用的SimpleAudioEngine。 您可以使用ALuinttypes的ID来区分声音。

ALuint soundEffectID;

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

你必须pipe理这些效果,我认为你的问题将得到解决。