今、私はこれに対する答えをしばらく探していましたが、Googleと私のすべての力が私を失敗させるようです。オブジェクトはJavaで親とのコミュニケーション
私はこのクラスを取得しました。 (私の世界)。 はMyWorld以内に私は今m_MyUnitsがここにオフGameUnitsおよびサブクラスで埋めている
GameUnit m_MyUnits[] = new GameUnit[maxUnits];
オブジェクト
の配列を持っている、とインクルードはチーズケーキのように幸せな画面の周りを歩いています。 私は自分のそれぞれに小さな衝突検出を書いているので、お互いに衝突しません。すべて問題なく動作しますが、 MyWorld I第1のループトラフで私は方法(と私は考える必要ほとんどのメモリ)の最も遅いを選択した動作するように私の衝突検出
については 各GameUnitと配列 プライベートint型のためにそのXとYの位置を取得します[] [ ]位置=新しいint [2] [maxUnits]);
次に、すべてのGameUnitをループし、この配列を割り当てます。 (GameUnitにはポジションという独自の配列があります)
これは動作しますが、これは愚かなものだとは思えません。さて、私はここでそれらの言葉を使用しません。
GameUnitは。のgetX()とMyWorld でm_MyUnits []。のgetY()いくつかの事のように[]アレイm_MyUnitsを呼び出すためにゲームユニットのために、より良いMyWorldで体位を呼び出し、またはするための方法がありますこの
For(int i = 0;i < Parent.maxUnits;i++) {
int targetX = Parent. m_MyUnits[i].getX();
int targetY = Parent. m_MyUnits[i].getX();
//Do some thing like collition detection with the data.
}
が、このことは可能ですか(私はGameUnitからMyWorldを参照するために親を使用しますか)?
あなたのJavaApprentis。
ような何かをしたいと思うことを言っ
のようなものを与えるためにあなたが 'MyWorld'の変数インスタンスへの参照を持っているか、すべてのですか静的にしたいものは?また、この依存度は、設計に欠陥があることを示している可能性があります。 – twain249
さて、それは欠陥がある...または私はそう思いますか? 天気を問う場合は、MyWorldの情報をGameUnitのインスタンスに渡しました。 私はしていない!私がしたいと思うことのようなものだと思います。しかし、私は確信していません。 IDがこれを行うのが好きなら、どのようにすればいいですか? GameUnitのコンストラクタは(int、int、double)何を追加するのですか? とは何ですか? – JavaApprentis
それから@ErnestFriedmanHillが示唆していることを行い、あなたのコンストラクタに 'MyWorld'引数を追加することができます。 – twain249