ゲームを開発していますが、信号を送ることができるかどうか疑問に思っています。
最初のレベルでは、プレイヤーは勝つために 3 つのアイテムを必要とします
第 2 レベルでは、プレイヤーが勝つために 5 つのアイテムが必要です
「ItemTaken」などのシグナルを特定のオブジェクトにスローすることは可能ですか?
- レベルを知っている
信号を処理します
プレイヤーが次のレベルに到達したかどうかを計算できます
(私は物事を単純化しましたが、たくさんの信号があります)
ゲームを開発していますが、信号を送ることができるかどうか疑問に思っています。
最初のレベルでは、プレイヤーは勝つために 3 つのアイテムを必要とします
第 2 レベルでは、プレイヤーが勝つために 5 つのアイテムが必要です
「ItemTaken」などのシグナルを特定のオブジェクトにスローすることは可能ですか?
信号を処理します
プレイヤーが次のレベルに到達したかどうかを計算できます
(私は物事を単純化しましたが、たくさんの信号があります)
組み込みAPIに関する限り、を調べることができますNSNotificationCenter
。ドキュメントは非常に単純です。登録して通知を監視し、文字列で識別される任意の通知を投稿できます。したがって、次のように簡単に書くことができます。
[[NSNotificationCenter defaultCenter] postNotificationName:MyItemTakenNotification object:theTakenItem];
より洗練されたものが必要な場合は、ReactiveCocoaをご覧ください。これは、より洗練された方法で信号を送信および応答するためのフレームワークです。(ただし、自分で使用したことはありません。)
いくつかの異なる方法があります。最も簡単な方法の 1 つはNSNotifications
、シングルトン オブジェクトを使用することです。
通知をリッスンし、受信したときにそれらを処理するシングルトンを作成します。通知が受信されると、セレクターであるメソッドが呼び出されます。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(processItem)
name:@"kItemTaken"
object:nil];
そして、イベントが発生したときにアプリに通知を送信させます:
[[NSNotificationCenter defaultCenter] postNotificationName:@"kItemTaken" object:nil];