Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Animation 如何更改JavaFX动画中对象的填充?_Animation_Javafx - Fatal编程技术网

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

Animation 如何更改JavaFX动画中对象的填充?,animation,javafx,Animation,Javafx,我正在开发一个简单的Java视频游戏。我决定使用JavaFX的Rectangle类来塑造视频游戏中的角色 当角色死亡时,我需要按顺序更新纹理,直到角色死亡。出于这个原因,我需要实现一个动画 我尝试过使用填充过渡,但我无法更改矩形的填充图像,只能更改颜色…我应该使用哪种动画类 一个角色的死亡由四个不同的精灵(四个png图像)表示,显示角色逐渐躺在土壤中。我需要在角色死亡时,按顺序用这4幅图像更改矩形的填充。矩形不是执行此类操作的好节点类型。为此,使用ImageView要简单得多 这允许您使用时间线

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

当角色死亡时,我需要按顺序更新纹理,直到角色死亡。出于这个原因,我需要实现一个动画

我尝试过使用
填充过渡
,但我无法更改矩形的填充图像,只能更改颜色…我应该使用哪种动画类


一个角色的死亡由四个不同的精灵(四个png图像)表示,显示角色逐渐躺在土壤中。我需要在角色死亡时,按顺序用这4幅图像更改矩形的填充。

矩形
不是执行此类操作的好节点类型。为此,使用
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();
final Image[]deathAnimationImages=新图像[]{…};
最终图像视图字符=。。。;
Duration frameDuration=Duration.seconds(1d/deathAnimationImages.length);//1秒钟完成动画
Timeline deathAnimation=新时间线(新关键帧(frameDuration,new EventHandler()){
私有整数指数=0;
@凌驾
公共无效句柄(ActionEvent事件){
字符.setImage(deathAnimationImages[index]);
索引++;
}
}));
deathAnimation.setCycleCount(deathAnimationImages.length);
deathAnimation.play();

如果使用
Rectangle
+
ImagePattern
获得给定大小的图像,则可以使用
ImageView.fitWidth
ImageView.fitHeight

生成相同的结果,具体取决于所需的动画类型。请在问题中添加所需结果的说明。你是在使用精灵表还是其他图像或类似的东西?一个角色的死亡是由4个不同的精灵(4个png图像)表示的,它显示角色逐渐躺在土壤上…我需要用这4个图像依次改变矩形的填充,当角色快要死的时候…我不知道我是否已经解释了这个问题。。。