我正在开发一个简单的Java电子游戏。我决定通过使用JavaFX的Rectangle
类来塑造该视频游戏的角色。
当角色死亡时,我需要顺序更新纹理,直到角色死亡。因此,我需要实现动画。
我尝试使用FillTransition
,但是我不能更改矩形的填充图像,而只能更改颜色...我应该使用哪种动画类?
一个角色的死亡由4个不同的精灵(四个png图像)表示,这些精灵显示角色逐渐躺在土壤上。在角色快要死的时候,我需要依次用这4张图像更改矩形的填充。
答案 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
来获取给定尺寸的图像,则可以使用ImagePattern
和ImageView.fitWidth
产生相同的结果。