Я пытаюсь создать игру с шашками, и в настоящее время я пытаюсь реализовать перемещение частей. Для этого я решил, что держать список, где части должны быть: blackPieces
whitePieces
удаление всех узлов типа в GridPane
Затем, когда движение производится, я бы:
- обновление соответствующий список
- цикл через всех детей GridPane
- удалить все элементы шашек, т.е. все узлы типа Circle
- добавить новые изделия согласно соответствующему списку
Однако, я застрял на шаге 3, с помощью следующего кода Groovy я просто получить ConcurrentModificationException
def children = board.getChildren()
for (child in children) {
if (child instanceof Circle) {
board.getChildren().remove(child)
}
}
Есть ли способ сделать это без перерисовки всей сцены?
Цените любую помощь!
Вам нужен итератор для удаления во время цикла. –
В Java вы можете сделать 'board.getChildren(). RemoveIf (Circle.class :: isInstance);'. Я не уверен, есть ли эквивалентная конструкция в Groovy. –