ゲームの作成に GridWorld (AP コンピューター サイエンス カリキュラムから) を使用しようとしていますが、複数のグリッドの使用に問題があります。World の setGrid メソッドが機能していないようです。私は、複数のグリッド オブジェクトを共存させることができ、World が指している現在のオブジェクトが GUI に描画されるという印象を受けました。しかし、それは起こりません... World の setGrid を呼び出してグリッドを渡すと、グリッドは論理的にのみ設定されているように見え、それを System.out.printing すると、アクターとその現在の位置の正しい結果が得られますが、 GUI が更新されず、グリッドが実際に表示されません。
これを説明するために、簡単な ActorWorld を書きました。
public static void main(String[] args) throws Exception
{
ActorWorld x = new ActorWorld()
{
Grid<Actor> gr1 = new BoundedGrid<Actor>(10,10);
Grid<Actor> gr2 = new BoundedGrid<Actor>(10,10);
public void step()
{
new Actor().putSelfInGrid(gr1, new Location(1,1));
new Actor().putSelfInGrid(gr2, new Location(9,9));
if (getGrid() == gr2)
setGrid(gr1);
else
setGrid(gr2);
System.out.println(getGrid());
}
};
x.show();
}
すべてのステップで別のグリッドに変更して表示する必要があるため、基本的に、グリッド内の 1 つのアクタの位置を (1,1) から (9,9) に変更する必要があります。しかし実際には、空のグリッドが表示されるだけです (これは、デフォルトのコンストラクターで作成した元のグリッドを使用しているためです。これは、提供しなかったためです)。どうしたの?現在のグリッドを描画するにはどうすればよいですか?