В кейсе мира сетки для моего последнего проекта я делаю игру. В игре, если игрок нажимает клавишу «W», вызывается метод shiftUp(), который заставляет всех других актеров определенного экземпляра двигаться вниз, чтобы создать иллюзию движения игрока. Это не законченная реализация метода, но она должна получить всех актеров в сетке и проверить, являются ли они экземплярами класса с именем Enemy, который расширяет Actor. Если это так, актер должен переместиться на одну позицию вверх. Когда я вызываю этот метод, NullPointerException вызывается в строке, которая вызывает вражеский.moveTo(...); Этого не должно происходить, потому что я проверяю, является ли оно нулевым. Кто-нибудь может мне с этим помочь? Я получаю это: Исключение в потоке "AWT-EventQueue-0" java.lang.NullPointerException
public void shiftUp()
{
if (((GameGrid)getGrid()).getMinX() != 0)
{
Grid<Actor> grid = getGrid();
if (grid != null)
{
for (int y = 0; y < getGrid().getNumRows(); y++)
for (int x = 0; x < getGrid().getNumCols(); x++)
{
Actor enemy = grid.get(new Location(y,x));
if (enemy != null && enemy instanceof Enemy)
enemy.moveTo(new Location(enemy.getLocation().getRow() - 1, enemy.getLocation().getCol()));
}
}
}
}
getLocation()
возвращаетnull
? - person Jeffrey   schedule 12.05.2012