gpt4 book ai didi

java - 使用 JavaFX DropShadow 移动节点会留下痕迹

转载 作者:行者123 更新时间:2023-11-30 06:25:05 24 4
gpt4 key购买 nike

在我正在 JavaFX 中开发的游戏中,我有带有 Label 的卡片( DropShadow s) s。卡片可以移动,当它们移动时,阴影会留下一条微弱的痕迹。我尝试过使用Node#setCache(boolean) ,它有效,但模糊了标签中的文本。

还有其他方法可以防止 DropShadow 留下痕迹吗?

这是 MCVE 的结果:

public class DropShadowTest extends Application {

@Override
public void start(final Stage stage) throws Exception {
final Label label = new Label("Hello, world!");
label.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(10), Insets.EMPTY)));
label.setEffect(new DropShadow(3, 0, 1, Color.BLACK));
label.setMaxSize(100, 100);
label.setMinSize(100, 100);

stage.setScene(new Scene(new StackPane(label), 640, 480));
stage.show();

label.setOnMouseClicked(event -> {
final TranslateTransition anim = new TranslateTransition(Duration.seconds(1), label);
anim.setToX(Math.random() * 500 - 250);
anim.setToY(Math.random() * 300 - 150);
anim.play();
});
}

public static void main(final String[] args) {
Application.launch(args);
}

}

结果: Drop shadow trails

谢谢!

最佳答案

尝试将缓存Cache hints一起使用,例如,在开始制作动画之前,将缓存提示设置为 SPEED完成动画后,您可以切换回 QUALITY ,它会重新渲染你的节点(就像 swing 中的 repaint() 一样)

关于java - 使用 JavaFX DropShadow 移动节点会留下痕迹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47342604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com