JavaFX动画多边形工件

时间:2018-01-18 16:29:28

标签: java javafx transition polygon artifacts

我正在JavaFX中开展一个小游戏,我使用PathTransition移动多边形。 我遇到了一个我无法找到修复的问题: 移动多边形时,它们有时会留下一些瑕疵: artifacts
这并不是经常发生的(但只有当向左或向右移动,从不在两个方向上移动时)并且它们在某些时候通常会消失。

下面的一个小例子:

import java.io.IOException;
import javafx.animation.Interpolator;
import javafx.animation.TranslateTransition;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
import javafx.util.Duration;

public class Main extends Application{

private Scene testScene;
private FXMLLoader testLoader;
private Pane testPane;
private Polygon polygon;

@Override
public void start(Stage primaryStage) throws Exception {
    testLoader = new FXMLLoader(getClass().getResource("test.fxml"));
    try {
        testPane = (Pane) testLoader.load();
    } catch (IOException e) {
        e.printStackTrace();
    }
    testScene = new Scene(testPane, 500, 500);
    primaryStage.setScene(testScene);

    polygon = new Polygon();
    polygon.setFill(Color.DARKSLATEBLUE);
    polygon.getPoints().setAll(new Double[]{ 50.0, 50.0, 70.0, 50.0, 70.0, 70.0, 50.0, 70.0 });

    TranslateTransition transition = new TranslateTransition();     
    transition.setCycleCount(1);
    transition.setDuration(Duration.seconds(4));
    transition.setNode(polygon);
    transition.setFromX(0);
    transition.setToX(0);
    transition.setFromY(0);
    transition.setToY(400);
    transition.play();

    testPane.getChildren().add(polygon);        

    primaryStage.show();
}

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

}

使用的test.fxml是使用eclipse 创建的vanilla fxml文件(e(fx)clipse可能?)看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.AnchorPane?>

<AnchorPane xmlns:fx="http://javafx.com/fxml/1">
</AnchorPane>

注意:每次在提供的示例中都不会出现此问题,更像是一半的时间,因此您可能需要多次尝试才能重现它...

有没有人知道什么可能导致多边形表现得那样?

0 个答案:

没有答案