私はいくつかのレベルでゲームをデザインしています。私は、一時停止ページ、トランジションページ、プレイヤーのスコアバナー、すべてのレベルに共通のすべてのものを処理するシングルトン(MasterSceneと呼ばれる)として定義されたCCLayerを持っています。 したがって、各レベルで、ユーザーが一時停止ボタンを押すと、一時停止ページに対応するCClayerを表示するためにシングルトンが呼び出されます。私の問題は、シングルトン(レベル)を誰が呼んだのかを知りたいということです。それをする方法はありますか?アプリケーションのアーキテクチャの詳細を知らなくても おかげシングルトンと呼んだ人を知る方法 - 目的C
0
A
答えて
3
は、私は、次の3つのアプローチをお勧めしたい:
- は(レベルのオブジェクトにまたはポインタ、または何でも)レベル番号を渡しシングルトンのメソッドにパラメータとして。
- オブジェクトが現在のレベルを把握しているので、すでに知っているレベルになります。 (もちろん、これは現在のレベルだけがこれらのメソッドを呼び出すことができると仮定していますが、なぜ複数のレベルに一時停止ボタンがあるのかわかりません)。
- このオブジェクトを全くシングルトンにしないでください。各レベルのインスタンスを作成します。このオブジェクトが追跡する必要があるアプリケーショングローバル状態が本当にありますか? MasterSceneを使用して動作をカプセル化し、グローバルな状態をカプセル化していない場合、そのクラスの複数のインスタンスを実際に何かを傷つけない(またはデバイスリソースを大量に消費する)ことはありません。
1
あなたが求めている方法でメッセージのソースを見つける一般的な方法はありません。
しかし、この問題を解決する可能性のある別のアーキテクチャがありますので、それらを検討することをおすすめします。あなたが説明していることは、相互依存クラスの混乱のように聞こえる。あなたのすべてのレベルは、このMasterSceneシングルトンを認識して使用しています。そして、あなたはシングルトンをあらゆるレベルにも気づかせようとしていますか?アプリケーションのあらゆる部分は、他のすべてのアプリケーションに気づく必要はありません。
0
引数として渡すことができます。
@implementation Level30
-(void) pause;
{
[[MasterScene getSingleton] pauseWithLevel:self];
}
@end
関連する問題
- 1. シングルトンの目的C
- 2. iOS 10のプッシュ通知を実装する方法[目的C]?
- 3. 目的cシングルトン共有インスタンスが呼び出されていない
- 4. 目的Cメソッド方法
- 5. 目的のCでメソッドを呼び出す方法は?
- 6. 目的c:ライブラリのmainメソッドを呼び出す方法は?
- 7. 目的のCでUINavigationコントローラーを呼び出す方法
- 8. 目的関数CでJavaScript関数を呼び出す方法
- 9. iOS目的C:ユーザーがスペースバーをタップしたときの通知方法
- 10. C#で別のフォームと呼ばれるフォームを知る方法
- 11. 目的のCでプッシュ通知のサウンドを設定する方法は?
- 12. 目的のCのプッシュ通知のボタンイベントでアプリケーションをロードする方法は?
- 13. 目的のCプッシュ通知コードをスウィフトに変換する方法
- 14. 1つの目的で混乱-cシングルトンの例
- 15. FCMプッシュ通知を受信できませんIOS - 目的C
- 16. cメソッドから目的のcメソッドを呼び出す方法iOS
- 17. iOSサイレントローカルプッシュ通知の目的c?
- 18. Fcm通知が受信されません目的c?
- 19. シングルトンとCアレイ?
- 20. 目的のcのアンドロイド方法を変換する方法
- 21. 目的C init
- 22. Objective-Cの代理人と通知
- 23. 目的C tip?
- 24. 目的C NSCoreDataOptimisticLockingExceptionのトラブルシューティング方法
- 25. 目的のCのトップバーへの方法
- 26. 目的C:ドロップエリア
- 27. 目的Cタッチイベントロック
- 28. 目的地Cを使用してSharePoint WebサービスGetListItemsを呼び出す方法
- 29. 静的クラスとシングルトン
- 30. 静的クラスとシングルトン
パラメータとしてレベル番号を渡すことがおそらく最良の選択肢です(明らかに、私はボックス外で考えたはずです)。一時停止ページは現在のレベルで変数を設定する必要があるため、子として一時停止ページを追加するのではなく、シングルトンメソッドを使用します。私はちょうど子供が両親に何をすべきかを教えてもらえません...ありがとうございます。 – Cyril