我正在开发一个简单的Java视频游戏。我决定使用JavaFX的Rectangle
类来塑造那个视频游戏的角色。
当角色死亡时,我需要依次更新纹理,直到角色死亡。出于这个原因,我需要实现一个动画。
我试过使用FillTransition
,但我无法更改矩形的填充图像,只能更改颜色。。。我应该使用什么样的动画类?
角色的死亡由4个不同的精灵(四个png图像(表示,显示角色逐渐躺在土壤中。我需要依次用这4个图像更改矩形的填充,而角色正在死亡。
Rectangle
不是一个很好的节点类型来做这种事情。为此目的使用ImageView
要简单得多。
这允许您使用Timeline
来操作ImageView
:的image
属性
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
+ImagePattern
获得给定大小的图像,则可以使用ImageView.fitWidth
和ImageView.fitHeight
产生相同的结果。