From 0e6be2ee29fc2450b25499b994cc2c767c1c2aca Mon Sep 17 00:00:00 2001 From: Seraina Date: Sun, 15 May 2022 08:27:34 +0200 Subject: [PATCH] Added foreground Animation by just extending the BGAnimation --- .../multiplayer/client/gui/BGAnimation.java | 38 ++++++++++++------- .../client/gui/DayNightChangeListener.java | 1 + .../gui/TrainAnimationDayController.java | 7 ++++ .../gui/lounge/LoungeSceneViewController.java | 5 +-- .../client/gui/TrainAnimationViewDay.fxml | 5 +++ 5 files changed, 38 insertions(+), 18 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/BGAnimation.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/BGAnimation.java index 16e89cc..dc9ca5c 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/BGAnimation.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/BGAnimation.java @@ -3,22 +3,27 @@ package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui; import javafx.animation.Interpolator; import javafx.animation.Transition; -import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.util.Duration; public class BGAnimation extends Transition { - ImageView imageView; - int index; - int lastIndex; + private ImageView bgView; + private ImageView fgView; + private int index; + private int lastIndex; - public BGAnimation(Duration duration, ImageView imageView) { + public BGAnimation(Duration duration, ImageView bgView, ImageView fgView) { index = 0; lastIndex = 1034; - this.imageView = imageView; - imageView.setFitHeight(1950); - imageView.setFitWidth(6667.968); - imageView.setImage(Sprites.getBg()); + this.bgView = bgView; + this.fgView = fgView; + bgView.setFitHeight(1950); + bgView.setFitWidth(6667.968); + bgView.setImage(Sprites.getBg()); + fgView.setFitHeight(1950); + fgView.setFitWidth(6667.968); + fgView.setImage(Sprites.getFg()); + setCycleDuration(duration); setInterpolator(Interpolator.DISCRETE); @@ -26,14 +31,19 @@ public class BGAnimation extends Transition { @Override protected void interpolate(double frac) { - imageView.setImage(Sprites.getBg()); + bgView.setImage(Sprites.getBg()); + fgView.setImage(Sprites.getFg()); if(index == lastIndex) { index = 0; - imageView.setX(0); - imageView.setY(0); + bgView.setX(0); + fgView.setX(0); + bgView.setY(0); + fgView.setY(0); } - imageView.setX(index * -5); - imageView.setY(index * -1.07); + bgView.setX(index * -5); + fgView.setX(index * -5); + bgView.setY(index * -1.07); + fgView.setY(index * -1.07); index++; } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/DayNightChangeListener.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/DayNightChangeListener.java index 3c54111..6508178 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/DayNightChangeListener.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/DayNightChangeListener.java @@ -30,6 +30,7 @@ public class DayNightChangeListener implements Runnable { @Override public void run() { try{ + Thread.sleep(1000); //TODO(Seraina): test! while(!gameStateModel.isGameOver()) { if(gameStateModel.getDayClone()) { //its Day LoungeSceneViewController.getTrainAnimationDayController().dontShowFullWagon(); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDayController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDayController.java index 7a9fbaf..155a3e9 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDayController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationDayController.java @@ -19,6 +19,10 @@ public class TrainAnimationDayController implements Initializable { public static final Logger LOGGER = LogManager.getLogger(TrainAnimationDayController.class); public static final BudaLogConfig l = new BudaLogConfig(LOGGER); + @FXML + public ImageView wagonWallImageView; + @FXML + public ImageView foreGroundAnimationImageView1; @FXML private ImageView backGroundAnimationImageView; @FXML @@ -91,6 +95,9 @@ public class TrainAnimationDayController implements Initializable { Animation wheels = new WheelsAnimation(Duration.millis(866.666), wheelsImageView); wheels.setCycleCount(Animation.INDEFINITE); wheels.play(); + Animation backGround = new BGAnimation(Duration.millis(17), backGroundAnimationImageView, foreGroundAnimationImageView1); + backGround.setCycleCount(Animation.INDEFINITE); + backGround.play(); } }); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java index a5815e0..a8e8c1d 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java @@ -247,10 +247,7 @@ public class LoungeSceneViewController implements Initializable { Platform.runLater(new Runnable() { @Override public void run() { - backGroundAnimationPane.getChildren().add(bgAnimationView); - Animation backGround = new BGAnimation(Duration.millis(17), bgAnimationView); - backGround.setCycleCount(Animation.INDEFINITE); - backGround.play(); + //TODO(SERAINA): bgAnimation? } }); LOGGER.debug("In Initialize 3 LobbyListView" + LobbyListView); diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationViewDay.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationViewDay.fxml index 1ace55b..d122ccf 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationViewDay.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/TrainAnimationViewDay.fxml @@ -47,5 +47,10 @@ + + + + +