Морфинг Криттер в GridWorld?
Для этого нового объекта под названием AntCritter я переписал метод processActors, и теперь он удаляет другие антрактеры вокруг него, когда он должен изменить их цвет. Я перепробовал множество вещей, но я не могу понять это, потому что в коде прямо говорится, чтобы не удалять актера, если он является antcritter. Метод перемещения в основном такой же, как и для ошибки.
public void processActors(ArrayList<Actor> actors)
{
for(Actor a: actors)
{
if(!(a instanceof AntCritter)||!(a instanceof Flower)||!(a instanceof KingCrab))
a.removeSelfFromGrid();
if(a instanceof AntCritter)
{
setColor(Color.BLUE);
a.setColor(Color.PINK);
((AntCritter) a).move();
}
}
}
1 ответ
Я совсем не знаком с GridWorld, но это первое условие:
!(a instanceof Flower)
будет true
когда a
это AntCritter
, так что остальные условия в вашем if
заявление никогда не будет оценено.
Читайте об оценке короткого замыкания для получения дополнительной информации.