4

我正在制作一个玩家通过动作对声音做出反应的游戏——因为不需要视觉元素来玩它,而且很多人闭着眼睛玩,不完全兼容 VoiceOver 似乎很可惜。我目前正在使用 Cocos2D-iPhone 和 CocosDenshion 进行音频,现在我开始考虑如何构建我的菜单系统来选择级别和配置控件。

在 Cocos2D 的菜单系统中支持 VoiceOver 是否相当容易,或者我是否应该考虑尝试在我没有使用经验的 UIKit 中创建我的菜单?

4

2 回答 2

4

我不知道 Cocos 的菜单系统是否支持 VoiceOver,但如果不支持,您可能可以添加您自己正在寻找的功能,而无需深入研究UIKit。您需要做的就是创建一个UIView子类,该子类会在您的应用启动时添加到您的主窗口中。然后使用UIAccessibilityContainer协议和UIAccessibilityPostNotification调用允许用户通过 VoiceOver 与您的游戏进行交互。

UIAccessibilityContainer协议允许您通知 VoiceOver 当前屏幕上的界面元素、它们的标签、它们的特征等。然后,VoiceOver 使用这些信息让用户在元素之间滑动并获得关于它们的反馈。

当您的游戏更改状态时,您可以更改该协议发回的内容,然后发出

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,无)

...通知 VoiceOver 屏幕布局已更改。如果只是通过 VoiceOver 说话,比如当你的游戏状态发生变化时,你可以发送不同的通知来说出一些文字:

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"成就解锁!");

于 2012-06-07T17:06:23.687 回答
-3

无需使用UIKit框架,您可以使用本cocos2d机方法和类来实现它。

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

ALuint soundEffectID;

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

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

于 2012-03-28T09:14:18.923 回答