私は Pacman ゲームを動作させていますが、そのゲームに戻ってコードをより適切に「整理」しようとしています。以前は、基本的にゲーム内のすべてのオブジェクト (パックマン、ゴースト、マップなど) を参照する game1.cs のオブジェクトを参照するこの "TopObject" がありました。ゴースト オブジェクトから Pacman オブジェクトにアクセスしたり、ゴースト オブジェクトからマップ/タイル オブジェクトにアクセスしたり、どこからでも ContentMananger にアクセスしてコンテンツをロードしたりできるように、どこからでもグローバルに利用できるようにしました。
私はこれが悪い習慣であることを知っているので、私はそれを排除しようとしています. たとえば、「ContentManager」タイプを取るすべてのオブジェクトに LoadContent() メソッドを作成したため、TopObject を使用して ContentManager を呼び出す必要がなくなりました。
さらに先に進むと、すべてのオブジェクトへのこのグローバル参照なしで何かをするのに本当に苦労しています。例: - 私の Pacman Update(). 内から..
壁にぶつかるかどうかを知る必要があります。マップ/タイルへの参照が必要です。
ゴーストと衝突したかどうかを知る必要があるため、ゴースト オブジェクトへの参照が必要です。
食べ物と衝突したかどうかを知り、スコアボードを更新する必要があるため、スコアボード オブジェクトへの参照が必要です。
本質的に、すべてのオブジェクトに非常に多くのオブジェクト参照を渡すことで、巨大な混乱を引き起こしているように感じます。
これをよりうまく整理する方法を知っている人はいますか? Pacman Update() 内の衝突をチェックする必要がありますか、それとも別の "PacmanObject.CheckCollisionWith()" を作成して Game1 Update() から呼び出す必要がありますか? 衝突ロジックも新しいクラスに分離する必要がありますか?
ありがとう!