4

私はプレイヤーが動きによって音に反応するゲームを作っています - それをプレイするのに視覚要素は必要なく、多くの人が目を閉じてプレイしていることを考えると、VoiceOver と完全に互換性がないのは残念です. 現在、オーディオには Cocos2D-iPhone と CocosDenshion を使用しており、レベルを選択してコントロールを構成するためのメニュー システムをどのように構築するかを考え始めています。

Cocos2D のメニュー システムで VoiceOver をサポートするのはかなり簡単ですか? それとも、使用経験のない UIKit でメニューを作成することを検討する必要がありますか?

4

2 に答える 2

4

Cocos のメニュー システムが VoiceOver をサポートしているかどうかはわかりませんが、サポートしていない場合は、多くのUIKit作業を掘り下げることなく、探している機能を自分で追加できる可能性があります。UIViewアプリの起動時にメイン ウィンドウに追加されるサブクラスを作成するだけです。次に、UIAccessibilityContainerプロトコルとUIAccessibilityPostNotification呼び出しを使用して、ユーザーが VoiceOver 経由でゲームと対話できるようにします。

このUIAccessibilityContainerプロトコルを使用すると、現在画面に表示されているインターフェイス要素、そのラベル、特性などを VoiceOver に通知できます。次に、VoiceOver はこの情報を使用して、ユーザーが要素間をスワイプしてフィードバックを取得できるようにします。

ゲームの状態が変化したとき、そのプロトコルが送り返すものを変更してから、

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil)

...画面レイアウトが変更されたことを 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 に答える