2012-03-27 103 views
4

我正在製作一個遊戲,玩家通過動作對聲音做出反應 - 視覺上不需要視覺元素來演奏,許多玩家閉着眼睛,不完全兼容VoiceOver是一種遺憾。我目前正在使用Cocos2D-iPhone和CocosDenshion進行音頻處理,現在我開始考慮如何構建我的菜單系統來選擇級別並配置控件。我可以在我的Cocos2D-iPhone遊戲中支持VoiceOver嗎?

在Cocos2D的菜單系統中支持VoiceOver是否合理簡單,還是應該嘗試在UIKit中創建我沒有經驗的菜單?

回答

4

我不知道Cocos的菜單系統是否支持VoiceOver,但如果不支持,您可以添加自己尋找的功能,而無需深入研究UIKit的工作。所有你需要做的是創建一個UIView子類,當你的應用程序啓動時它會被添加到你的主窗口。然後使用UIAccessibilityContainer協議和UIAccessibilityPostNotification調用來允許用戶通過VoiceOver與您的遊戲進行交互。

UIAccessibilityContainer協議可讓您通知VoiceOver屏幕上當前有哪些界面元素,其標籤及其特徵等。VoiceOver然後使用此信息讓用戶在元素之間滑動並獲取有關它們的反饋。

當你的遊戲狀態改變時,你可以改變什麼協議發送回來,然後發出

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,無)

...通知的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]; 

你必須管理這些效果,我認爲你的問題將得到解決。

+0

SimpleAudioEngine與支持iOS設備中的VoiceOver導航有什麼關係? – Blixxy 2012-03-28 13:24:03

相關問題