diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/BellAnimation.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/BellAnimation.java new file mode 100644 index 0000000..93b64a1 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/BellAnimation.java @@ -0,0 +1,29 @@ +package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.game; + +import javafx.animation.Interpolator; +import javafx.animation.Transition; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.util.Duration; + +public class BellAnimation extends Transition { + ImageView imageView; + Image[] bells; + int index; + + public BellAnimation(ImageView imageView, Image[] bells) { + setCycleCount(17); + index = 0; + this.imageView = imageView; + this.bells = bells; + setCycleDuration(new Duration(59)); + setInterpolator(Interpolator.DISCRETE); + } + + + @Override + protected void interpolate(double frac) { + imageView.setImage(bells[index]); + index++; + } +} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java index d1cff06..0f2ac83 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameController.java @@ -10,6 +10,7 @@ import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel; import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol; import java.net.URL; import java.util.ResourceBundle; +import javafx.animation.Animation; import javafx.application.Platform; import javafx.fxml.FXML; import javafx.fxml.Initializable; @@ -36,8 +37,24 @@ public class GameController implements Initializable { private static GameStateModel gameStateModel; + Image[] bells = new Image[17]; + public GameController() { super(); + try { + for (int i = 1; i <= 17; i++) { + String url; + if (i < 10) { + url = + "ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Bell/Image000" + i + ".png"; + } else { + url = "ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Bell/Image00" + i + ".png"; + } + bells[i-1] = new Image(url); + } + } catch (Exception e) { + e.printStackTrace(); + } } //TODO(Seraina, Sebi): Same issue as ChatController? do with setters? @@ -540,7 +557,8 @@ public class GameController implements Initializable { public void run() { try { if(!gameStateModel.getKickedOff()[0]) { - noiseImage0.setImage(loadBellImage()); + Animation bell = new BellAnimation(noiseImage5, bells); + bell.play(); } } catch (Exception e) { LOGGER.debug(e.getMessage()); @@ -560,7 +578,8 @@ public class GameController implements Initializable { public void run() { try { if(!gameStateModel.getKickedOff()[1]) { - noiseImage1.setImage(loadBellImage()); + Animation bell = new BellAnimation(noiseImage4, bells); + bell.play(); } } catch (Exception e) { LOGGER.debug(e.getMessage()); @@ -579,7 +598,8 @@ public class GameController implements Initializable { public void run() { try { if(!gameStateModel.getKickedOff()[2]) { - noiseImage2.setImage(loadBellImage()); + Animation bell = new BellAnimation(noiseImage3, bells); + bell.play(); } } catch (Exception e) { LOGGER.debug(e.getMessage()); @@ -599,7 +619,8 @@ public class GameController implements Initializable { public void run() { try { if(!gameStateModel.getKickedOff()[3]) { - noiseImage3.setImage(loadBellImage()); + Animation bell = new BellAnimation(noiseImage2, bells); + bell.play(); } } catch (Exception e) { LOGGER.debug(e.getMessage()); @@ -618,7 +639,8 @@ public class GameController implements Initializable { public void run() { try { if(!gameStateModel.getKickedOff()[4]) { - noiseImage4.setImage(loadBellImage()); + Animation bell = new BellAnimation(noiseImage1, bells); + bell.play(); } } catch (Exception e) { LOGGER.debug(e.getMessage()); @@ -637,7 +659,8 @@ public class GameController implements Initializable { public void run() { try { if(!gameStateModel.getKickedOff()[5]) { - noiseImage5.setImage(loadBellImage()); + Animation bell = new BellAnimation(noiseImage0, bells); + bell.play(); } } catch (Exception e) { LOGGER.debug(e.getMessage()); diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml index dc4b5d7..67cef01 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/GameDayAll.fxml @@ -41,18 +41,14 @@ + + + + + + - - - - - - - - - - diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml index f38bd8d..bd50986 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml @@ -6,7 +6,6 @@ - @@ -46,7 +45,6 @@