[JavaFX] 我想让时间线更快一点

jimmyking 2009-06-23
刚入门javafx想做一个小游戏玩玩,现在遇到一个问题
我用时间线来控制小球的移动,当碰到某物体时 希望能让小球移动速度加快
var roadLine=Timeline {
             repeatCount: Timeline.INDEFINITE
             keyFrames : [
                 KeyFrame {
                     time : bind speed
                     action:function(){
                       moveBall();
                     }
                 }
             ]
      }

我将time bind 了一个speed的变量
当我在碰撞的方法里改变speed时,游戏就卡在那里了 小球也不动了。
是不是我实现这个效果的方法错误了 ,望指点~~
javafxguy 2009-06-23
原因是:动画未停,不能随便改参数,否则动画变乱。

解决问题有两种方法,

1)先调用timeline.stop(),
然后是改变speed,
然后再timeline.playFromStart();

2)直接改 timeline.rate的值,default是1.0,当 > 1.0时加快, < 1.0时减慢,可以试一下 (有可能需要stop()后playFromStart() ).


jimmyking 2009-06-24
感谢javafxguy 的指点~~
我是用第2种方法实现的
bind rate值可以达到我需要的效果, 不需要stop()
但是第一方法没办法实现
我在 moveBall()方法里面没办法调用roadLine.stop()


Global site tag (gtag.js) - Google Analytics