如何在JavaFX Animation中更改对象的填充?

时间:2018-07-31 09:59:29

标签: animation javafx

我正在开发一个简单的Java电子游戏。我决定通过使用JavaFX的Rectangle类来塑造该视频游戏的角色。

当角色死亡时,我需要顺序更新纹理,直到角色死亡。因此,我需要实现动画。

我尝试使用FillTransition,但是我不能更改矩形的填充图像,而只能更改颜色...我应该使用哪种动画类?

一个角色的死亡由4个不同的精灵(四个png图像)表示,这些精灵显示角色逐渐躺在土壤上。在角色快要死的时候,我需要依次用这4张图像更改矩形的填充。

1 个答案:

答案 0 :(得分:0)

Rectangle不是执行此类工作的好节点类型。为此,使用ImageView要简单得多。

这允许您使用Timeline来操纵image的{​​{1}}属性:

ImageView

如果您使用final Image[] deathAnimationImages = new Image[] {...}; final ImageView character = ...; Duration frameDuration = Duration.seconds(1d / deathAnimationImages.length); // 1 second for complete animation Timeline deathAnimation = new Timeline(new KeyFrame(frameDuration, new EventHandler<ActionEvent>() { private int index = 0; @Override public void handle(ActionEvent event) { character.setImage(deathAnimationImages[index]); index++; } })); deathAnimation.setCycleCount(deathAnimationImages.length); deathAnimation.play(); + Rectangle来获取给定尺寸的图像,则可以使用ImagePatternImageView.fitWidth产生相同的结果。