如何在javafx中突破关键帧?

如何在javafx中突破关键帧?,java,animation,javafx,Java,Animation,Javafx,我制作了一个玩蛇的程序。对于动画,我使用了关键帧和时间线。我的程序逻辑很好。我遇到的问题是如何突破关键帧。时间线的循环计数设置为不确定,在关键帧中,我检查蛇是撞到墙上还是撞到自己。如果是这样,我调用方法endGame(),该方法终止程序 keyFrame = new KeyFrame(Duration.millis(100), e -> { . . . // check if the snake hit itself for(int index =

我制作了一个玩蛇的程序。对于动画,我使用了
关键帧
时间线
。我的程序逻辑很好。我遇到的问题是如何突破关键帧。
时间线
的循环计数设置为不确定,在
关键帧
中,我检查蛇是撞到墙上还是撞到自己。如果是这样,我调用方法
endGame()
,该方法终止程序

keyFrame = new KeyFrame(Duration.millis(100), e ->
{
    .
    .
    .

    // check if the snake hit itself
    for(int index = 1 ; index < snakeList.size() ; index++)
    {
        if(snakeList.get(0).getLayoutX() == snakeList.get(index).getLayoutX() && snakeList.get(0).getLayoutY() == snakeList.get(index).getLayoutY())
        {                   
            gameOver = true ;
            break ;
        }
    }

    if(gameOver)
        endGame() ;
}) ;

time_line = new Timeline(keyFrame) ;
time_line.setCycleCount(Timeline.INDEFINITE) ;
time_line.play() ;
为了简单起见,我避免了import语句和其他一些关于程序逻辑的代码

keyFrame = new KeyFrame(Duration.millis(100), e ->
{
    .
    .
    .

    // check if the snake hit itself
    for(int index = 1 ; index < snakeList.size() ; index++)
    {
        if(snakeList.get(0).getLayoutX() == snakeList.get(index).getLayoutX() && snakeList.get(0).getLayoutY() == snakeList.get(index).getLayoutY())
        {                   
            gameOver = true ;
            break ;
        }
    }

    if(gameOver)
        endGame() ;
}) ;

time_line = new Timeline(keyFrame) ;
time_line.setCycleCount(Timeline.INDEFINITE) ;
time_line.play() ;

但是,当蛇死亡的条件满足时,是否有办法从关键帧呼气?

不应该
时间线。停止工作?