Now in the Game the vote Buttons are transparent and the Rooms move up and down when hovering over a room

This commit is contained in:
Seraina 2022-05-12 12:56:49 +02:00
parent 7968523469
commit 19ddf70e72
8 changed files with 233 additions and 77 deletions

View File

@ -0,0 +1,25 @@
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;
private static final Image bgFull = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/BG_small.jpg");
BGAnimation(Duration duration, ImageView imageView) {
this.imageView = imageView;
setCycleDuration(duration);
setInterpolator(Interpolator.DISCRETE);
}
@Override
protected void interpolate(double frac) {
}
}

View File

@ -18,6 +18,8 @@ public class TrainAnimationDayController implements Initializable {
public static final Logger LOGGER = LogManager.getLogger(TrainAnimationDayController.class);
public static final BudaLogConfig l = new BudaLogConfig(LOGGER);
@FXML
private ImageView backGroundAnimationImageView;
@FXML
private ImageView wheelsImageView;
@FXML
@ -61,7 +63,7 @@ public class TrainAnimationDayController implements Initializable {
Platform.runLater(new Runnable() {
@Override
public void run() {
Animation wheels = new WheelsAnimation(Duration.millis(1000), wheelsImageView);
Animation wheels = new WheelsAnimation(Duration.millis(866.666), wheelsImageView);
wheels.setCycleCount(Animation.INDEFINITE);
wheels.play();
}

View File

@ -12,6 +12,10 @@ import javafx.util.Duration;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* This class animates the wheels from the train from sprites
*/
public class WheelsAnimation extends Transition {
public static final Logger LOGGER = LogManager.getLogger(WheelsAnimation.class);
public static final BudaLogConfig l = new BudaLogConfig(LOGGER);
@ -24,7 +28,7 @@ public class WheelsAnimation extends Transition {
WheelsAnimation(Duration duration, ImageView imageView) {
this.imageView = imageView;
setCycleDuration(duration);
setInterpolator(Interpolator.LINEAR);
setInterpolator(Interpolator.DISCRETE);
index = 1;
wheels[0] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0001.png");
wheels[1] = new Image("ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/game/Day/Wheels/Image0002.png");

View File

@ -36,7 +36,6 @@ public class GameController implements Initializable {
private static GameStateModel gameStateModel;
public GameController() {
super();
}
@ -59,6 +58,18 @@ public class GameController implements Initializable {
return gameStateModel;
}
@FXML
private ImageView room0ImageView;
@FXML
private ImageView room1ImageView;
@FXML
private ImageView room2ImageView;
@FXML
private ImageView room3ImageView;
@FXML
private ImageView room4ImageView;
@FXML
private ImageView room5ImageView;
@FXML
private AnchorPane gameBG;
@FXML
@ -128,6 +139,24 @@ public class GameController implements Initializable {
.sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + "$" + 0);
}
public void moveRoom0Up() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room0ImageView.setY(-20);
}
});
}
public void moveRoom0Down() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room0ImageView.setY(0);
}
});
}
/**
* If button 1 is clicked, send the vote message 0 to the server
*/
@ -135,6 +164,23 @@ public class GameController implements Initializable {
client.getClient()
.sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + "$" + 1);
}
public void moveRoom1Up() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room1ImageView.setY(-20);
}
});
}
public void moveRoom1Down() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room1ImageView.setY(0);
}
});
}
/**
* If button 2 is clicked, send the vote message 0 to the server
@ -144,6 +190,24 @@ public class GameController implements Initializable {
.sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + "$" + 2);
}
public void moveRoom2Up() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room2ImageView.setY(-20);
}
});
}
public void moveRoom2Down() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room2ImageView.setY(0);
}
});
}
/**
* If button 3 is clicked, send the vote message 0 to the server
*/
@ -151,6 +215,23 @@ public class GameController implements Initializable {
client.getClient()
.sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + "$" + 3);
}
public void moveRoom3Up() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room3ImageView.setY(-20);
}
});
}
public void moveRoom3Down() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room3ImageView.setY(0);
}
});
}
/**
* If button 4 is clicked, send the vote message 0 to the server
@ -159,6 +240,23 @@ public class GameController implements Initializable {
client.getClient()
.sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + "$" + 4);
}
public void moveRoom4Up() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room4ImageView.setY(-20);
}
});
}
public void moveRoom4Down() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room4ImageView.setY(0);
}
});
}
/**
* If button 5 is clicked, send the vote message 0 to the server
@ -167,6 +265,23 @@ public class GameController implements Initializable {
client.getClient()
.sendMsgToServer(Protocol.votedFor + "$" + client.getClient().getPosition() + "$" + 5);
}
public void moveRoom5Up() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room5ImageView.setY(-20);
}
});
}
public void moveRoom5Down() {
Platform.runLater(new Runnable() {
@Override
public void run() {
room5ImageView.setY(0);
}
});
}
/**
* Sends a noise message, to the server, should be a gui message?

View File

@ -7,6 +7,11 @@
<StackPane maxHeight="1080.0" maxWidth="1920.0" minHeight="-Infinity" minWidth="-Infinity" stylesheets="@TrainAnimationDay.css" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.TrainAnimationDayController">
<children>
<AnchorPane prefHeight="200.0" prefWidth="200.0">
<children>
<ImageView fx:id="backGroundAnimationImageView" fitHeight="843.75" fitWidth="1500.0" pickOnBounds="true" preserveRatio="true" />
</children>
</AnchorPane>
<ImageView fx:id="shadowTrain" fitHeight="843.75" fitWidth="1500.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@game/Day/Shadow_Below_Train.png" />

View File

@ -3,12 +3,21 @@
}
.button{
-fx-background-color: transparent;
-fx-border-color: transparent;
}
#noiseButton{
-fx-background-color: midnightblue;
-fx-text-fill: lightgrey;
}
#roomButtonGroup{
-fx-background-color: transparent;
}
.text-field{
-fx-text-fill: white;
-fx-background-color: transparent;

View File

@ -9,9 +9,39 @@
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.TextFlow?>
<AnchorPane id="BG" fx:id="gameBG" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="theme" stylesheets="@GameDay.css" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.game.GameController">
<AnchorPane id="BG" fx:id="gameBG" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="843.75" prefWidth="1500.0" styleClass="theme" stylesheets="@GameDay.css" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.game.GameController">
<children>
<Group fx:id="roomButtonGroupDay" layoutX="230.5" layoutY="220.0">
<ImageView fx:id="room0ImageView" fitHeight="843.75" fitWidth="1500.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@Day/Room1.png" />
</image>
</ImageView>
<ImageView fx:id="room1ImageView" fitHeight="843.75" fitWidth="1500.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@Day/Room2.png" />
</image>
</ImageView>
<ImageView fx:id="room2ImageView" fitHeight="843.75" fitWidth="1500.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@Day/Room3.png" />
</image>
</ImageView>
<ImageView fx:id="room3ImageView" fitHeight="843.75" fitWidth="1500.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@Day/Room4.png" />
</image>
</ImageView>
<ImageView fx:id="room4ImageView" fitHeight="843.75" fitWidth="1500.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@Day/Room5.png" />
</image>
</ImageView>
<ImageView fx:id="room5ImageView" fitHeight="843.75" fitWidth="1500.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@Day/Room6.png" />
</image>
</ImageView>
<Group fx:id="roomButtonGroupDay" layoutX="288.0" layoutY="220.0">
<children>
<HBox fx:id="notificationHBox" layoutX="20.0" layoutY="-55.0" rotate="12.4">
<children>
@ -23,78 +53,6 @@
<ImageView fx:id="noiseImage5" fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" rotate="-12.4" />
</children>
</HBox>
<Button id="room1" fx:id="buttonRoom0" accessibleRole="RADIO_BUTTON" alignment="TOP_CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="21.5" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote0" prefHeight="110.0" prefWidth="90.0" text="room0">
<font>
<Font size="25.0" />
</font>
<graphic>
<ImageView fitHeight="145.24" fitWidth="217.6" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@DayOpen/room1button.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button id="room1" fx:id="buttonRoom1" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="145.0" layoutY="26.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote1" prefHeight="101.0" prefWidth="90.0" text="room1">
<font>
<Font size="25.0" />
</font>
<graphic>
<ImageView fitHeight="145.236" fitWidth="217.6" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@DayOpen/room2button.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button id="room1" fx:id="buttonRoom2" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="268.5" layoutY="52.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote2" prefHeight="110.0" prefWidth="90.0" text="room2">
<font>
<Font size="25.0" />
</font>
<graphic>
<ImageView fitHeight="145.24" fitWidth="217.6" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@DayOpen/room3button.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button id="room1" fx:id="buttonRoom3" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="392.0" layoutY="78.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote3" prefHeight="110.0" prefWidth="90.0" text="room3">
<font>
<Font size="25.0" />
</font>
<graphic>
<ImageView fitHeight="145.24" fitWidth="217.6" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@DayOpen/room4button.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button id="room1" fx:id="buttonRoom4" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="515.3" layoutY="104.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote4" prefHeight="110.0" prefWidth="90.0" text="room4">
<font>
<Font size="25.0" />
</font>
<graphic>
<ImageView fitHeight="145.24" fitWidth="217.6" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@DayOpen/room5button.png" />
</image>
</ImageView>
</graphic>
</Button>
<Button id="room1" fx:id="buttonRoom5" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="639.0" layoutY="130.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote5" prefHeight="110.0" prefWidth="90.0" text="room5">
<font>
<Font size="25.0" />
</font>
<graphic>
<ImageView fitHeight="145.24" fitWidth="217.6" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@DayOpen/room6button.png" />
</image>
</ImageView>
</graphic>
</Button>
<HBox fx:id="roomLables" alignment="CENTER" layoutY="82.0" prefHeight="62.0" prefWidth="747.0" rotate="12.2">
<children>
<TextFlow fx:id="lableRoom0" prefHeight="200.0" prefWidth="200.0" textAlignment="CENTER" />
@ -105,6 +63,36 @@
<TextFlow fx:id="lableRoom5" prefHeight="200.0" prefWidth="200.0" textAlignment="CENTER" />
</children>
</HBox>
<Button id="room1" fx:id="buttonRoom0" accessibleRole="RADIO_BUTTON" alignment="TOP_CENTER" contentDisplay="GRAPHIC_ONLY" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote0" onMouseExited="#moveRoom0Down" onMouseMoved="#moveRoom0Up" prefHeight="110.0" prefWidth="120.0" text="room0">
<font>
<Font size="25.0" />
</font>
</Button>
<Button id="room1" fx:id="buttonRoom1" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="120.0" layoutY="26.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote1" onMouseExited="#moveRoom1Down" onMouseMoved="#moveRoom1Up" prefHeight="110.0" prefWidth="120.0" text="room1">
<font>
<Font size="25.0" />
</font>
</Button>
<Button id="room1" fx:id="buttonRoom2" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="240.0" layoutY="52.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote2" onMouseExited="#moveRoom2Down" onMouseMoved="#moveRoom2Up" prefHeight="110.0" prefWidth="120.0" text="room2">
<font>
<Font size="25.0" />
</font>
</Button>
<Button id="room1" fx:id="buttonRoom3" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="360.0" layoutY="78.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote3" onMouseExited="#moveRoom3Down" onMouseMoved="#moveRoom3Up" prefHeight="110.0" prefWidth="115.0" text="room3">
<font>
<Font size="25.0" />
</font>
</Button>
<Button id="room1" fx:id="buttonRoom4" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="475.0" layoutY="104.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote4" onMouseExited="#moveRoom4Down" onMouseMoved="#moveRoom4Up" prefHeight="110.0" prefWidth="115.0" text="room4">
<font>
<Font size="25.0" />
</font>
</Button>
<Button id="room1" fx:id="buttonRoom5" accessibleRole="RADIO_BUTTON" alignment="CENTER" contentDisplay="GRAPHIC_ONLY" layoutX="590.0" layoutY="130.0" minWidth="-Infinity" mnemonicParsing="false" onAction="#sendVote5" onMouseExited="#moveRoom5Down" onMouseMoved="#moveRoom5Up" prefHeight="110.0" prefWidth="115.0" text="room5">
<font>
<Font size="25.0" />
</font>
</Button>
</children>
</Group>
<Button fx:id="noiseButton" alignment="CENTER" layoutX="267.0" layoutY="482.0" mnemonicParsing="false" onAction="#noise" prefHeight="114.0" prefWidth="217.0" text="I heard some noise">

View File

@ -0,0 +1,8 @@
.imageView{
}
*{
-fx-border-color: lightgrey;
}