Finalização de tarefa JavaFX e encadeamento JavaFX
Eu apenas comecei a aprender sobre JavaFX hoje e estava tentando aprender mais criando um clone do Snake, mas estou tendo problemas com o encadeamento. Eu queria criar um encadeamento que atualizasse a posição da cobra na tela, mas não conseguia usar um encadernado Runnable normal, porque estava usando o JavaFX a partir desse encadeamento para atualizar as posições dos retângulos desenhados na tela (o que aprendi minha classe da qual eu estava criando o thread estende JavaFX.scene.layout.Pane e estou tentando usar uma tarefa para atualizar a posição da serpente . Meu problema é: a tarefa parece executar apenas uma ou duas vezes e sai, sem que eu interrompa.
Construtor para a classe que estende o Painel (a classe Snake estende o Grupo):
public GameFrame(){
this.setPrefSize(800, 600);
Snake snake = new Snake();
this.getChildren().add(snake);
taskThread = new Thread(new Task<Void>() {
protected Void call() throws Exception {
while(!Thread.currentThread().isInterrupted()){
snake.updatePosition();
try{
Thread.sleep(1000);
} catch(InterruptedException e){
break;
}
}
return null;
}
});
taskThread.start();
}
Sinto que realmente não entendo qual é a melhor coisa a fazer aqui, e o que estou tentando fazer pode ser uma loucura. Existem sugestões sobre o que devo fazer ou como posso corrigir isso?