我正在製作一個遊戲,玩家通過動作對聲音做出反應 - 視覺上不需要視覺元素來演奏,許多玩家閉着眼睛,不完全兼容VoiceOver是一種遺憾。我目前正在使用Cocos2D-iPhone和CocosDenshion進行音頻處理,現在我開始考慮如何構建我的菜單系統來選擇級別並配置控件。我可以在我的Cocos2D-iPhone遊戲中支持VoiceOver嗎?
在Cocos2D的菜單系統中支持VoiceOver是否合理簡單,還是應該嘗試在UIKit中創建我沒有經驗的菜單?
我正在製作一個遊戲,玩家通過動作對聲音做出反應 - 視覺上不需要視覺元素來演奏,許多玩家閉着眼睛,不完全兼容VoiceOver是一種遺憾。我目前正在使用Cocos2D-iPhone和CocosDenshion進行音頻處理,現在我開始考慮如何構建我的菜單系統來選擇級別並配置控件。我可以在我的Cocos2D-iPhone遊戲中支持VoiceOver嗎?
在Cocos2D的菜單系統中支持VoiceOver是否合理簡單,還是應該嘗試在UIKit中創建我沒有經驗的菜單?
我不知道Cocos的菜單系統是否支持VoiceOver,但如果不支持,您可以添加自己尋找的功能,而無需深入研究UIKit
的工作。所有你需要做的是創建一個UIView
子類,當你的應用程序啓動時它會被添加到你的主窗口。然後使用UIAccessibilityContainer
協議和UIAccessibilityPostNotification
調用來允許用戶通過VoiceOver與您的遊戲進行交互。
UIAccessibilityContainer
協議可讓您通知VoiceOver屏幕上當前有哪些界面元素,其標籤及其特徵等。VoiceOver然後使用此信息讓用戶在元素之間滑動並獲取有關它們的反饋。
當你的遊戲狀態改變時,你可以改變什麼協議發送回來,然後發出
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,無)
...通知的VoiceOver,屏幕布局已經改變。並通過VoiceOver的,只是說話的東西,說,當你的遊戲狀態已經改變,你可以發送不同的通知,說一些文字:
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,@「成就解鎖!」);
沒有必要去與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 2012-03-28 13:24:03