0

ゲームを開発していますが、信号を送ることができるかどうか疑問に思っています。

最初のレベルでは、プレイヤーは勝つために 3 つのアイテムを必要とします

第 2 レベルでは、プレイヤーが勝つために 5 つのアイテムが必要です

「ItemTaken」などのシグナルを特定のオブジェクトにスローすることは可能ですか?

  1. レベルを知っている
  2. 信号を処理します

  3. プレイヤーが次のレベルに到達したかどうかを計算できます

(私は物事を単純化しましたが、たくさんの信号があります)

4

2 に答える 2

1

組み込みAPIに関する限り、を調べることができますNSNotificationCenter。ドキュメントは非常に単純です。登録して通知を監視し、文字列で識別される任意の通知を投稿できます。したがって、次のように簡単に書くことができます。

[[NSNotificationCenter defaultCenter] postNotificationName:MyItemTakenNotification object:theTakenItem];

より洗練されたものが必要な場合は、ReactiveCocoaをご覧ください。これは、より洗練された方法で信号を送信および応答するためのフレームワークです。(ただし、自分で使用したことはありません。)

于 2013-03-11T19:10:19.403 に答える
0

いくつかの異なる方法があります。最も簡単な方法の 1 つはNSNotifications、シングルトン オブジェクトを使用することです。

通知をリッスンし、受信したときにそれらを処理するシングルトンを作成します。通知が受信されると、セレクターであるメソッドが呼び出されます。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(processItem)
                                             name:@"kItemTaken"
                                           object:nil];

そして、イベントが発生したときにアプリに通知を送信させます:

[[NSNotificationCenter defaultCenter] postNotificationName:@"kItemTaken" object:nil];
于 2013-03-11T19:08:54.600 に答える