我正在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>
注意:每次在提供的示例中都不会出现此问题,更像是一半的时间,因此您可能需要多次尝试才能重现它...
有没有人知道什么可能导致多边形表现得那样?