首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改KeyFrame持续时间

如何更改KeyFrame持续时间
EN

Stack Overflow用户
提问于 2018-12-06 20:56:49
回答 1查看 494关注 0票数 2

我有一组移动的形状,它们的大小在增长,当它达到一定的大小时,我希望它的移动速度(秒)增加,但是我不知道如何更新我的KeyFrame的秒变量。秒变量是我最初在开始方法中设置为0.2的一个全局变量。我将组的长度存储在一个ArrayList中,这样我就可以做一些类似的事情

代码语言:javascript
复制
if(groupList.size() >= 3 && groupList.size() <= 8){
      seconds = 0.15;
}
if(groupList.size() >= 9 && groupList.size() <= 14){
      seconds = 0.09;
}

等等,上面的代码在我的开始方法中。我的KeyFrame有一个名为move的方法:

代码语言:javascript
复制
public void move(){
Timeline timeline = new Timeline();
KeyFrame frame = new KeyFrame(Duration.seconds(seconds), e -> {
            //bunch of if statements for game logic
    });
    timeline.setCycleCount(Timeline.INDEFINITE);
    timeline.getKeyFrames().add(keyFrame);
    timeline.play();}

所以在我的开始方法中,我把它按如下顺序排列:

代码语言:javascript
复制
gameStart();
move();
if(groupList.size() >= 3 && groupList.size() <= 8){
      seconds = 0.15;
      move();
}
if(groupList.size() >= 9 && groupList.size() <= 14){
      seconds = 0.09;
      move();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-06 22:31:52

在if语句中,我在move方法调用之前和在更改秒变量之后添加了timeline.stop()和timeline.getKeyFrames().clear(),它工作了!向@MadProgrammer喊出解决方案!

代码语言:javascript
复制
if(groupList.size() >= 3 && groupList.size() <= 8){
  seconds = 0.15;
  timeline.stop();
  timeline.getKeyFrames().clear();
  move();
}
if(groupList.size() >= 9 && groupList.size() <= 14){
  seconds = 0.09;
  timeline.stop();
  timeline.getKeyFrames().clear();
  move();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53659555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档