Gridworldで Tetris ゲームを設計しています。以下は、エラーを生成するメソッドです。これは、移動メソッドと回転メソッドを呼び出すことができるアクタのコレクションである Block クラスのメソッドです。
myBlocks
BlockSections の ArrayList です。
public boolean canMoveDown() {
Grid<Actor> g = myBlocks.get(0).getGrid();
for (BlockSection b : myBlocks) {
Location l = b.getLocation().getAdjacentLocation(180); // Error occurs here
System.out.print(l);
Actor bs = g.get(l);
// Checks if a section of the block is at the bottom of grid,
// and then whether, if there is a block below, if it is not
// part of the current block floating down.
if (b.getLocation().getRow() == 19 || (bs != null && myBlocks.indexOf(bs) == -1))
return false;
}
return true;
}
}
}
Location が null でないことを確認するために print ステートメントを挿入しようとしました (チェックされているすべての BlockSections がグリッド内にあるため、これはすべきではありません)。値が null でないことを確認しました。ただし、エラーは引き続き生成されます。ヘルプ?
ありがとう