Ajout de beaucoup de choses

main
ZartaX0O3 3 years ago
parent 3a9a240e7d
commit eb560344ee

@ -1,21 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.effect.Shadow?>
<?import javafx.scene.image.Image?> <?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?> <?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.shape.Line?>
<?import javafx.scene.shape.Rectangle?>
<?import javafx.scene.text.Font?>
<AnchorPane fx:id="levelRoot" fx:controller="controller.GamePlayController" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/11" xmlns:fx="http://javafx.com/fxml/1" > <AnchorPane fx:id="levelRoot" fx:controller="controller.GamePlayController" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/11" xmlns:fx="http://javafx.com/fxml/1" >
<ImageView fx:id="persoImageView" fitHeight="32.0" fitWidth="32.0" layoutX="132.0" layoutY="74.0" pickOnBounds="true" <ImageView fx:id="persoImageView" fitHeight="32.0" fitWidth="32.0" layoutX="132.0" layoutY="74.0"
pickOnBounds="true"
preserveRatio="true"> preserveRatio="true">
<image> <Image url="@../image/personnage/Perso1.png"/>
<Image url="image/personnage/Perso1.png"/>
</image>
</ImageView> </ImageView>
</AnchorPane> </AnchorPane>

@ -1,53 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.effect.Shadow?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.shape.Line?>
<?import javafx.scene.shape.Rectangle?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.control.Button?>
<AnchorPane fx:id="levelRoot" id="1" fx:controller="controller.GamePlayController" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="1300.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/11" xmlns:fx="http://javafx.com/fxml/1" >
<children>
<AnchorPane minHeight="400.0" minWidth="400.0" prefHeight="608.0" prefWidth="348.0" layoutX="960.0">
<children>
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="#323436" height="900.0" layoutY="0.0" stroke="BLACK" strokeType="INSIDE" width="340" />
<ImageView fitHeight="128.0" fitWidth="93.0" layoutX="50.0" layoutY="33.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../image/personnage/Perso1.2.png" />
</image>
</ImageView>
<Label layoutX="144.0" layoutY="59.0" prefHeight="41.0" prefWidth="124.0" text="Pseudonyme" textFill="WHITE">
<font>
<Font name="Segoe UI Black" size="16.0" />
</font>
</Label>
<Rectangle arcHeight="5.0" arcWidth="5.0" height="331.0" layoutX="50.0" layoutY="166.0" opacity="0.3" stroke="BLACK" strokeDashOffset="10.0" strokeLineCap="ROUND" strokeLineJoin="ROUND" strokeMiterLimit="100.0" strokeType="INSIDE" strokeWidth="5.0" width="201.0" />
<Line endX="100.0" layoutX="139.0" layoutY="222.0" startX="-77.0" stroke="#f2f0f0" />
<Label alignment="CENTER" layoutX="88.0" layoutY="173.0" prefHeight="41.0" prefWidth="124.0" text="Action" textFill="WHITE">
<font>
<Font name="Segoe UI" size="16.0" />
</font>
</Label>
<JFXButton fx:id="buttonDe" onAction="#lancerDe" layoutX="95.0" layoutY="530.0" prefHeight="30.0" prefWidth="119.0" ripplerFill="#e1e1e1" style="-fx-background-color: #EB9C0A;" text="Lancer le dé" textAlignment="CENTER" textFill="WHITE">
<font>
<Font name="Segoe UI" size="15.0" />
</font>
<effect>
<Shadow />
</effect>
</JFXButton>
<ImageView fx:id="de" fitWidth="75" fitHeight="75" layoutX="100" layoutY="580.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../image/dé/icon.png"/>
</image>
</ImageView>
</children>
</AnchorPane>
</children>
</AnchorPane>

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.shape.Rectangle?>
<?import com.jfoenix.controls.JFXButton?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.effect.Shadow?>
<?import javafx.scene.shape.Line?>
<?import javafx.scene.text.Text?>
<AnchorPane fx:id="levelRoot" id="1" fx:controller="controller.GamePlayController" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="900.0" prefWidth="1300.0" xmlns="http://javafx.com/javafx/11" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="#393e43" height="900.0" layoutX="960.0" stroke="BLACK" strokeType="INSIDE" width="340.0" />
<ImageView fx:id="playerImagePerso" fitHeight="123.0" fitWidth="110.0" layoutX="1075.0" layoutY="76.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="/image/personnage/Perso1.2.png" />
</image>
</ImageView>
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="#090a0a" height="373.0" layoutX="1014.0" layoutY="238.0" opacity="0.48" stroke="BLACK" strokeType="INSIDE" width="232.0" />
<ImageView fx:id="de" fitHeight="76.0" fitWidth="150.0" layoutX="1092.0" layoutY="648.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../image/dé/icon.png" />
</image>
</ImageView>
<Line endX="100.0" layoutX="1130.0" layoutY="289.0" startX="-100.0" stroke="WHITE" />
<Line endX="100.0" layoutX="1130.0" layoutY="600.0" startX="-100.0" stroke="WHITE" />
<Text fill="WHITE" layoutX="1102.0" layoutY="270.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Action" textAlignment="CENTER" wrappingWidth="55.4375">
<font>
<Font name="Segoe UI" size="16.0" />
</font>
</Text>
<JFXButton layoutX="1071.0" layoutY="752.0" onAction="#lancerDe" prefHeight="30.0" prefWidth="119.0" ripplerFill="#e1e1e1" style="-fx-background-color: #EB9C0A;" text="Lancer le dé" textAlignment="CENTER" textFill="WHITE">
<font>
<Font name="Segoe UI" size="15.0" />
</font>
<effect>
<Shadow />
</effect>
</JFXButton>
</children>
</AnchorPane>

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

@ -32,7 +32,7 @@ public class GameConfigMenuController implements Initializable {
@FXML private ImageView ImageChange; @FXML private ImageView ImageChange;
@FXML private ToggleGroup group; @FXML private ToggleGroup group;
private String personnage; private int personnage;
private int difficulty; private int difficulty;
@Override @Override
@ -42,39 +42,38 @@ public class GameConfigMenuController implements Initializable {
radioButton3.setToggleGroup(group); radioButton3.setToggleGroup(group);
} }
@FXML @FXML void changeSkin1(ActionEvent event){
void changeSkin1(ActionEvent event){
ImageChange.setImage(new Image("/image/personnage/Perso1.2.png")); ImageChange.setImage(new Image("/image/personnage/Perso1.2.png"));
this.personnage = "1"; this.personnage = 1;
} }
@FXML @FXML void changeSkin2(ActionEvent event){
void changeSkin2(ActionEvent event){
ImageChange.setImage(new Image("/image/personnage/Perso2.2.png")); ImageChange.setImage(new Image("/image/personnage/Perso2.2.png"));
this.personnage = "2"; this.personnage = 2;
} }
@FXML @FXML void changeSkin3(ActionEvent event){
void changeSkin3(ActionEvent event){
ImageChange.setImage(new Image("/image/personnage/Perso3.2.png")); ImageChange.setImage(new Image("/image/personnage/Perso3.2.png"));
this.personnage = "3"; this.personnage = 3;
} }
@FXML @FXML void setDifficulty1(MouseEvent event){
void setDifficulty1(MouseEvent event){
this.difficulty = 1; this.difficulty = 1;
} }
@FXML @FXML void setDifficulty2(MouseEvent event){
void setDifficulty2(MouseEvent event){
this.difficulty = 2; this.difficulty = 2;
} }
@FXML @FXML void setDifficulty3(MouseEvent event){
void setDifficulty3(MouseEvent event){
this.difficulty = 3; this.difficulty = 3;
} }
@FXML @FXML
void launchGame(MouseEvent event) throws Exception { void launchGame(MouseEvent event) throws Exception {
Parent pane = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/viewGame.fxml"))); FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/viewGame2.fxml"));
pane.setId(personnage); Parent pane = loader.load();
GamePlayController gp = loader.getController();
gp.difficulty = this.difficulty;
gp.perso = this.personnage;
gp.gameLauncher();
Stage a = new Stage(); Stage a = new Stage();
a.setScene(new Scene(pane, 1300, 900)); a.setScene(new Scene(pane, 1300, 900));
a.setResizable(false); a.setResizable(false);

@ -30,6 +30,7 @@ public class GamePlayController implements Initializable {
@FXML public AnchorPane levelRoot; @FXML public AnchorPane levelRoot;
@FXML public ImageView de; @FXML public ImageView de;
@FXML public ImageView creatureImageView = new ImageView(); @FXML public ImageView creatureImageView = new ImageView();
@FXML public ImageView playerImagePerso;
PersoController persoController = new PersoController(); PersoController persoController = new PersoController();
Case caseActuelle; Case caseActuelle;
@ -39,28 +40,20 @@ public class GamePlayController implements Initializable {
int i, diceNumber; int i, diceNumber;
Thread personnage; Thread personnage;
public int difficulty;
public int perso;
@FXML @FXML
@Override @Override
public void initialize(URL url, ResourceBundle resourceBundle) { public void initialize(URL url, ResourceBundle resourceBundle) {
String id = levelRoot.getId();
if(id.equals("1")){
levelRoot.getChildren().addAll(mapController.mapInitialisation(1), persoController.playerInitialisation(1,2, mapController.getMap()),creatureImageView);
persoController.setActualCase(mapController.getStartCase());
GameLoop loop = new GameLoop(1, mapController.getMap(), creatureImageView);
loop.start();
} }
else if(id.equals("2")){
GameLoop loop = new GameLoop(2, mapController.getMap(), creatureImageView); public void gameLauncher(){
loop.start(); levelRoot.getChildren().addAll(mapController.mapInitialisation(this.difficulty), persoController.playerInitialisation(this.difficulty,this.perso, mapController.getMap()));
levelRoot.getChildren().addAll(mapController.mapInitialisation(2), persoController.playerInitialisation(2,2, mapController.getMap()));
persoController.setActualCase(mapController.getStartCase()); persoController.setActualCase(mapController.getStartCase());
} playerImagePerso.setImage(new Image("image/personnage/Perso" + this.perso + ".2.png"));
else{ GameLoop loop = new GameLoop(this.difficulty, mapController.getMap(), creatureImageView);
GameLoop loop = new GameLoop(2, mapController.getMap(), creatureImageView);
loop.start(); loop.start();
levelRoot.getChildren().addAll(mapController.mapInitialisation(3), persoController.playerInitialisation(3,2, mapController.getMap()));
persoController.setActualCase(mapController.getStartCase());
}
} }
@ -234,11 +227,11 @@ public class GamePlayController implements Initializable {
persoImageView.setImage(imagePerso1); persoImageView.setImage(imagePerso1);
persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase);
})); }));
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time7), event -> { timeline.getKeyFrames().add(new KeyFrame(Duration.millis(800), event -> {
persoImageView.setImage(imagePerso3); persoImageView.setImage(imagePerso3);
persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase);
})); }));
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time8), event -> { timeline.getKeyFrames().add(new KeyFrame(Duration.millis(900), event -> {
persoImageView.setImage(imagePerso2); persoImageView.setImage(imagePerso2);
persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase);
})); }));

@ -9,6 +9,7 @@ import model.Case;
import model.Map; import model.Map;
public class MapController implements Initializable { public class MapController implements Initializable {
private final Map map = new Map(32,30); private final Map map = new Map(32,30);
private final Image b = new Image("/image/terrain/chemin.png"); private final Image b = new Image("/image/terrain/chemin.png");
private final Image a = new Image("/image/terrain/herbe.png"); private final Image a = new Image("/image/terrain/herbe.png");
@ -32,10 +33,10 @@ public class MapController implements Initializable {
private final Image t = new Image("/image/terrain/tronc1g.png"); private final Image t = new Image("/image/terrain/tronc1g.png");
private final Image u = new Image("/image/terrain/tronc1d.png"); private final Image u = new Image("/image/terrain/tronc1d.png");
private final Image v = new Image("/image/terrain/souche1.png"); private final Image v = new Image("/image/terrain/souche1.png");
private final Image w = new Image("/image/terrain/chemin.png");
private final Image x = new Image("/image/terrain/multiarbre1.png"); private final Image x = new Image("/image/terrain/multiarbre1.png");
private final Image y = new Image("/image/terrain/multiarbre2.png"); private final Image y = new Image("/image/terrain/multiarbre2.png");
private final Image z = new Image("/image/terrain/star.png");
private final Image w = new Image("/image/terrain/chemin.png");
@Override @Override

@ -12,6 +12,8 @@ public class PersoController {
@FXML @FXML
public ImageView persoImageView; public ImageView persoImageView;
@FXML
public ImageView playerImagePerso;
private Avatar avatar; private Avatar avatar;
@ -22,19 +24,12 @@ public class PersoController {
switch (perso) { switch (perso) {
case 1: case 1:
this.avatar = new Avatar(1, "image/personnage/Perso1.",map.getCoordStartX(), map.getCoordStartY()); this.avatar = new Avatar(1, "image/personnage/Perso1.",map.getCoordStartX(), map.getCoordStartY());
System.out.println("Size tile :" + map.getSizeTile());
System.out.println("Coord X Start" + map.getCoordStartX());
break; break;
case 2: case 2:
this.avatar = new Avatar(2, "image/personnage/Perso2.", map.getCoordStartX(), map.getCoordStartY()); this.avatar = new Avatar(2, "image/personnage/Perso2.", map.getCoordStartX(), map.getCoordStartY());
System.out.println("Size tile : " + map.getSizeTile());
System.out.println("Coord X Start : " + map.getCoordStartX());
System.out.println("Coord Y Start : " + map.getCoordStartY());
break; break;
case 3: case 3:
this.avatar = new Avatar(3, "image/personnage/Perso3.", map.getCoordStartX(), map.getCoordStartY()); this.avatar = new Avatar(3, "image/personnage/Perso3.", map.getCoordStartX(), map.getCoordStartY());
System.out.println("Size tile :" + map.getSizeTile());
System.out.println("Coord X Start" + map.getCoordStartX());
break; break;
default: default:
System.out.println("Erreur de choix du personnage [createPerso] unknown number"); System.out.println("Erreur de choix du personnage [createPerso] unknown number");

@ -4,15 +4,11 @@ import javafx.application.Application;
import javafx.fxml.FXMLLoader; import javafx.fxml.FXMLLoader;
import javafx.scene.Parent; import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage; import javafx.stage.Stage;
import model.*; import model.*;
import javafx.scene.media.Media;
import java.io.File;
import java.io.*; import java.io.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.Objects; import java.util.Objects;
public class Main extends Application { public class Main extends Application {

@ -0,0 +1,35 @@
package model;
public enum Bonus {
MOVE_FORWARD_1,
MOVE_FORWARD_3,
MOVE_FORWARD_5,
MOVE_FORWARD_8,
NEW_DICE;
public Bonus randomGet(){
int i = (int) (Math.random() * 8);
switch (i) {
case 0:
case 1:
case 2:
return Bonus.MOVE_FORWARD_1;
case 3:
case 4:
return Bonus.MOVE_FORWARD_3;
case 5:
case 6:
return Bonus.MOVE_FORWARD_5;
case 7:
return Bonus.MOVE_FORWARD_8;
case 8:
return Bonus.NEW_DICE;
}
return null;
}
}

@ -0,0 +1,9 @@
package model;
public class BonusCase extends Case {
public BonusCase(int idCase, int coordX, int coordY, boolean isStart, boolean isEnd, Map map, Bonus bonus) {
super(idCase, coordX, coordY, isStart, isEnd, map);
Bonus bonus1 = bonus.randomGet();
}
}

@ -0,0 +1,31 @@
package model;
public enum Malus {
MOVE_BACKWARD_1, // Recule de 1
MOVE_BACKWARD_3, // Recule de 3
MOVE_BACKWARD_5, // Recule de 5
LAST_POSITION; // Retour a la position initiale
public Malus randomGet(){
int i = (int) (Math.random() * 8);
switch (i) {
case 0:
case 1:
case 2:
return Malus.MOVE_BACKWARD_1;
case 3:
case 4:
return Malus.MOVE_BACKWARD_3;
case 5:
case 6:
return Malus.MOVE_BACKWARD_5;
case 7:
return Malus.LAST_POSITION;
}
return null;
}
}

@ -0,0 +1,10 @@
package model;
public class MalusCase extends Case{
public MalusCase(int idCase, int coordX, int coordY, boolean isStart, boolean isEnd, Map map, Malus malus) {
super(idCase, coordX, coordY, isStart, isEnd, map);
Malus malus1 = malus.randomGet();
}
}
Loading…
Cancel
Save