import javafx.scene.text.Text; //导入方法依赖的package包/类
private Transition createQuestionTransition(String question, List Pictos) {
Text questionText = new Text(question);
questionText.setId("title");
final Dimension2D gamePaneDimension2D = gameContext.getGamePanelDimensionProvider().getDimension2D();
double positionX = gamePaneDimension2D.getWidth() / 2 - questionText.getBoundsInParent().getWidth() * 2;
double positionY = gamePaneDimension2D.getHeight() / 2 - questionText.getBoundsInParent().getHeight() / 2;
questionText.setX(positionX);
questionText.setY(positionY);
questionText.setTextAlignment(TextAlignment.CENTER);
StackPane.setAlignment(questionText, Pos.CENTER);
gameContext.getChildren().add(questionText);
List pictogramesList = new ArrayList<>(20); // storage of actual Pictogramm nodes in order to delete
// them
// from the group later
if (Pictos != null && !Pictos.isEmpty() && Pictos.size() <= NBMAXPICTO) {
double screenWidth = Screen.getPrimary().getBounds().getWidth();
double nbPicto = Pictos.size();
double pictoSize = screenWidth / (nbPicto + 1);
log.info("screenWidth/(nbPicto) : {}", pictoSize);
pictoSize = Math.min(pictoSize, MAXSIZEPICTO);
log.info("Picto Size: {}", pictoSize);
int i = 0;
double shift = screenWidth / 2 - ((nbPicto / 2) * pictoSize * 1.1);
log.info("shift Size: {}", shift);
for (Image I : Pictos) {
Rectangle R = new Rectangle(pictoSize, pictoSize);
R.setFill(new ImagePattern(I));
R.setY(positionY + 100);
R.setX(shift + (i++ * pictoSize * 1.1));
pictogramesList.add(R);
}
gameContext.getChildren().addAll(pictogramesList);
}
TranslateTransition fullAnimation = new TranslateTransition(
Duration.millis(ConfigurationBuilder.createFromPropertiesResource().build().getQuestionLength()),
questionText);
fullAnimation.setOnFinished(new EventHandler() {
@Override
public void handle(ActionEvent actionEvent) {
gameContext.getChildren().remove(questionText);
gameContext.getChildren().removeAll(pictogramesList);
log.info("Adding {} pictures", currentRoundDetails.pictureCardList.size());
gameContext.getChildren().addAll(currentRoundDetails.pictureCardList);
for (PictureCard p : currentRoundDetails.pictureCardList) {
log.info("p = {}", p);
p.toFront();
p.setOpacity(1);
}
stats.start();
gameContext.onGameStarted();
}
});
return fullAnimation;
}