This commit is contained in:
Chiara 2020-04-23 09:09:46 +02:00
commit 5930322daf
10 changed files with 1001 additions and 799 deletions

View File

@ -10,8 +10,12 @@ import javafx.stage.Stage;
public class Main extends Application{
@Override
public void start(Stage primaryStage) throws Exception{
<<<<<<< HEAD
System.out.println("Lancement de l'application");
Parent root = FXMLLoader.load(getClass().getResource("ressources/Menu.fxml"));
=======
Parent root = FXMLLoader.load(getClass().getResource("ressources/Choix_joueur.fxml"));
>>>>>>> 8234d1247461715477e5a73a00bb6c077372e26d
primaryStage.setTitle("Shadow Hunters");
primaryStage.setScene(new Scene(root));
primaryStage.show();

View File

@ -1,25 +1,85 @@
package ihm;
import java.awt.Window.Type;
import javax.swing.JFrame;
import javafx.embed.swing.JFXPanel;
import javafx.event.EventHandler;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class PopUp {
public class PopUp{
private Scene scene;
private Stage popupwindow;
private Stage popup;
private double xOffSet = 0;
private double yOffSet = 0;
public PopUp (Parent p, String titre) {
popupwindow = new Stage();
popupwindow.initModality(Modality.APPLICATION_MODAL);
popupwindow.setTitle(titre);
popup = new Stage();
popup.initModality(Modality.NONE);
popup.initStyle(StageStyle.UNDECORATED);
popup.setTitle(titre);
scene = new Scene(p);
p.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event){
xOffSet = event.getSceneX();
yOffSet = event.getSceneY();
}
});
p.setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event){
popup.setX(event.getScreenX() - xOffSet);
popup.setY(event.getScreenY() - yOffSet);
}
});
popup.focusedProperty().addListener((obs,wasFocused,isNowFocused) -> {
if(!isNowFocused) {
popup.hide();
}
});
}
public void display() {
popupwindow.setScene(scene);
popupwindow.showAndWait();
popup.setScene(scene);
popup.showAndWait();
}
}

View File

@ -12,16 +12,15 @@ import javafx.fxml.Initializable;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.AnchorPane;
public class MenuController implements Initializable{
@FXML private Pane rootPane;
@FXML private AnchorPane rootPane;
@FXML private ImageView titre;
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
// TODO Auto-generated method stub
FileInputStream input;
try {
input = new FileInputStream("src\\ihm\\ressources\\img\\logo.png");
@ -34,8 +33,13 @@ public class MenuController implements Initializable{
@FXML
public void commencerPartie(MouseEvent mouseEvent) throws IOException{
<<<<<<< HEAD
System.out.println("Passage à  l'écran de choix des joueurs");
BorderPane pane = FXMLLoader.load(getClass().getResource("../ressources/Choix_joueur.fxml"));
=======
System.out.println("Passage à l'écran de choix des joueurs");
AnchorPane pane = FXMLLoader.load(getClass().getResource("../ressources/Choix_joueur.fxml"));
>>>>>>> 8234d1247461715477e5a73a00bb6c077372e26d
rootPane.getChildren().setAll(pane);
}

View File

@ -39,7 +39,7 @@ public class PlayersController implements Initializable{
private List<TextField> txt = new ArrayList<TextField>();
private List<CheckBox> ia = new ArrayList<CheckBox>();
private List<Joueur> joueur = new ArrayList<Joueur>();
private List<Joueur> joueurs = new ArrayList<Joueur>();
/**
@ -78,22 +78,26 @@ public class PlayersController implements Initializable{
@FXML
public void commencerJeux(MouseEvent mouseEvent) throws IOException{
//ajout des joueurs finalement selectionner
int nbJoueur = 0;
int nbJoueurs = 0;
for (HBox hb : ligne) {
TextField tf = (TextField) hb.getChildren().get(0);
CheckBox cb = (CheckBox) hb.getChildren().get(2);
Joueur j;
if (tf.isEditable()) {
if(cb.isSelected())
j = new JoueurVirtuel(tf.getText());
else
j = new Joueur(tf.getText());
nbJoueur++;
}else j = null;
joueur.add(j);
if(cb.isSelected()) {
joueurs.add(new Joueur(tf.getText()));
}
else {
joueurs.add(new JoueurVirtuel(tf.getText()));
}
nbJoueurs++;
}
}
if (nbJoueur <4) {
if (nbJoueurs < 4) {
Alert alert = new Alert(AlertType.WARNING, "Il faut au moins de 4 joueurs !");
alert.showAndWait();
}else {
@ -102,12 +106,14 @@ public class PlayersController implements Initializable{
Parent root = loader.load();
PlateauController pc = loader.getController();
pc.showInformation(joueur);
pc.showInformation(joueurs);
rootPane.getChildren().setAll(root);
}
}
/**
* Autorise a <EFBFBD>crire dans le text filed le nom du joueur ajouter
*

View File

@ -5,229 +5,179 @@
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<BorderPane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1280.0" styleClass="background" stylesheets="@style/menu.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.PlayersController">
<left>
<VBox alignment="CENTER" prefHeight="688.0" prefWidth="240.0" BorderPane.alignment="CENTER">
<children>
<HBox fx:id="hb5" alignment="CENTER" prefHeight="67.0" prefWidth="340.0" rotate="90.0">
<AnchorPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.PlayersController">
<children>
<BorderPane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1280.0" styleClass="background" stylesheets="@style/menu.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<left>
<VBox alignment="CENTER" prefHeight="688.0" prefWidth="240.0" BorderPane.alignment="CENTER">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="100.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
<padding>
<Insets right="5.0" />
</padding>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<VBox.margin>
<Insets bottom="150.0" left="-100.0" />
</VBox.margin>
</HBox>
<HBox fx:id="hb7" alignment="CENTER" rotate="90.0">
<children>
<TextField prefHeight="51.0" prefWidth="298.0">
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="100.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
<padding>
<Insets right="5.0" />
</padding>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<VBox.margin>
<Insets left="-100.0" top="200.0" />
</VBox.margin>
</HBox>
</children>
</VBox>
</left>
<right>
<VBox alignment="CENTER" prefHeight="688.0" prefWidth="248.0" BorderPane.alignment="CENTER">
<children>
<HBox fx:id="hb6" alignment="CENTER" prefHeight="100.0" prefWidth="200.0" rotate="270.0">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="100.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
<padding>
<Insets right="5.0" />
</padding>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<VBox.margin>
<Insets bottom="150.0" right="-100.0" />
</VBox.margin>
</HBox>
<HBox fx:id="hb8" alignment="CENTER" prefHeight="100.0" prefWidth="200.0" rotate="270.0">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="100.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
<padding>
<Insets right="5.0" />
</padding>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<VBox.margin>
<Insets right="-100.0" top="150.0" />
</VBox.margin>
</HBox>
</children>
</VBox>
</right>
<center>
<VBox alignment="CENTER" prefHeight="486.0" prefWidth="392.0" BorderPane.alignment="CENTER">
<children>
<Label styleClass="titre" stylesheets="@style/menu.css" text="Entrez le nom des joueurs">
<font>
<Font size="48.0" />
</font>
</Label>
<Label styleClass="titre" stylesheets="@style/menu.css" text="(Il faut au moins 4 joueurs)">
<font>
<Font size="36.0" />
</font>
</Label>
<Label styleClass="titre" stylesheets="@style/menu.css" text="Cochez la case pour avoir un joueur virtuel">
<font>
<Font size="36.0" />
</font></Label>
<Button fx:id="btnCommencer" mnemonicParsing="false" onMouseClicked="#commencerJeux" styleClass="bouton" stylesheets="@style/menu.css" text="Commencer la partie">
<font>
<Font size="24.0" />
</font>
<VBox.margin>
<Insets top="20.0" />
</VBox.margin>
</Button>
</children>
</VBox>
</center>
<top>
<HBox alignment="CENTER" prefHeight="110.0" prefWidth="1280.0" BorderPane.alignment="CENTER">
<children>
<HBox fx:id="hb1" alignment="CENTER" rotate="180.0">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="55.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
</HBox>
<HBox fx:id="hb2" alignment="CENTER" rotate="180.0">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="55.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<HBox.margin>
<Insets left="30.0" />
</HBox.margin>
</HBox>
</children>
</HBox>
</top>
<bottom>
<VBox alignment="CENTER" prefHeight="94.0" prefWidth="1280.0" BorderPane.alignment="CENTER">
<children>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
<children>
<HBox fx:id="hb3" alignment="CENTER">
<HBox fx:id="hb5" alignment="CENTER" prefHeight="67.0" prefWidth="340.0" rotate="90.0">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="100.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
<padding>
<Insets right="5.0" />
</padding>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<VBox.margin>
<Insets bottom="150.0" left="-100.0" />
</VBox.margin>
</HBox>
<HBox fx:id="hb7" alignment="CENTER" rotate="90.0">
<children>
<TextField prefHeight="51.0" prefWidth="298.0">
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="100.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
<padding>
<Insets right="5.0" />
</padding>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<VBox.margin>
<Insets left="-100.0" top="200.0" />
</VBox.margin>
</HBox>
</children>
</VBox>
</left>
<right>
<VBox alignment="CENTER" prefHeight="688.0" prefWidth="248.0" BorderPane.alignment="CENTER">
<children>
<HBox fx:id="hb6" alignment="CENTER" prefHeight="100.0" prefWidth="200.0" rotate="270.0">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="100.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
<padding>
<Insets right="5.0" />
</padding>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<VBox.margin>
<Insets bottom="150.0" right="-100.0" />
</VBox.margin>
</HBox>
<HBox fx:id="hb8" alignment="CENTER" prefHeight="100.0" prefWidth="200.0" rotate="270.0">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="100.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
<padding>
<Insets right="5.0" />
</padding>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<VBox.margin>
<Insets right="-100.0" top="150.0" />
</VBox.margin>
</HBox>
</children>
</VBox>
</right>
<center>
<VBox alignment="CENTER" prefHeight="486.0" prefWidth="392.0" BorderPane.alignment="CENTER">
<children>
<Label styleClass="titre" stylesheets="@style/menu.css" text="Entrez le nom des joueurs">
<font>
<Font size="48.0" />
</font>
</Label>
<Label styleClass="titre" stylesheets="@style/menu.css" text="(Il faut au moins 4 joueurs)">
<font>
<Font size="36.0" />
</font>
</Label>
<Label styleClass="titre" stylesheets="@style/menu.css" text="Cochez la case pour avoir un joueur virtuel">
<font>
<Font size="36.0" />
</font>
</Label>
<Button fx:id="btnCommencer" mnemonicParsing="false" onMouseClicked="#commencerJeux" styleClass="bouton" stylesheets="@style/menu.css" text="Commencer la partie">
<font>
<Font size="24.0" />
</font>
<VBox.margin>
<Insets top="20.0" />
</VBox.margin>
</Button>
</children>
</VBox>
</center>
<top>
<HBox alignment="CENTER" prefHeight="110.0" prefWidth="1280.0" BorderPane.alignment="CENTER">
<children>
<HBox fx:id="hb1" alignment="CENTER" rotate="180.0">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="55.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
@ -243,12 +193,15 @@
</CheckBox>
</children>
</HBox>
<HBox fx:id="hb4" alignment="CENTER">
<HBox fx:id="hb2" alignment="CENTER" rotate="180.0">
<children>
<TextField>
<TextField accessibleRole="PARENT">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets />
</HBox.margin>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="55.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
@ -270,7 +223,64 @@
</HBox>
</children>
</HBox>
</children>
</VBox>
</bottom>
</BorderPane>
</top>
<bottom>
<VBox alignment="CENTER" prefHeight="94.0" prefWidth="1280.0" BorderPane.alignment="CENTER">
<children>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
<children>
<HBox fx:id="hb3" alignment="CENTER">
<children>
<TextField prefHeight="51.0" prefWidth="298.0">
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="55.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
</HBox>
<HBox fx:id="hb4" alignment="CENTER">
<children>
<TextField>
<font>
<Font size="24.0" />
</font>
</TextField>
<Button mnemonicParsing="false" prefHeight="55.0" prefWidth="55.0" styleClass="bouton" stylesheets="@style/menu.css" text="+">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="10.0" right="10.0" />
</HBox.margin>
</Button>
<CheckBox mnemonicParsing="false">
<font>
<Font size="24.0" />
</font>
</CheckBox>
</children>
<HBox.margin>
<Insets left="30.0" />
</HBox.margin>
</HBox>
</children>
</HBox>
</children>
</VBox>
</bottom>
</BorderPane>
</children>
</AnchorPane>

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,34 @@
package main;
import java.util.ArrayList;
import java.util.List;
import effet.Effet;
public class GestionnaireJeu {
private Plateau plateau;
private View view;
public GestionnaireJeu (Plateau p) {
plateau = p;
public GestionnaireJeu() {
this.plateau = new Plateau(new ArrayList<Joueur>());
}
public static void main(String[] args) {
switch(1){
case 1:
lancerPartie();
case 2:
lancerConfiguration();
default:
break;
}
}
public Plateau getPlateau() {
@ -20,11 +39,15 @@ public class GestionnaireJeu {
this.plateau = plateau;
}
public void lancerPartie(Configuration c) {
//TODO
public static void lancerPartie() {
}
public Configuration lancerConfiguration() {
public void jouer(Configuration c) {
}
public static Configuration lancerConfiguration() {
//TODO
return null;
}

View File

@ -1,5 +1,25 @@
package main;
public class View {
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class View extends Application{
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("ressources/Plateau.fxml"));
primaryStage.setTitle("Shadow Hunters");
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}

View File

@ -9,8 +9,8 @@ import main.Plateau;
public class Charles extends CartePersonnage{
public Charles(String nom, int hp, Joueur joueur) {
super(nom, nom, hp, joueur);
public Charles(Joueur joueur) {
super("Charles", "desc", 11, joueur);
Action action = new ActionAltererStatistiquesJoueur("HP",-2,true);
Effet effet = new EffetSelf(action);

View File

@ -0,0 +1,75 @@
package personnage;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import main.Joueur;
import main.Plateau;
class CharlesTest {
Joueur j1;
Joueur j2;
Plateau p;
Allie a;
Charles c;
@BeforeEach
void init()
{
List<Joueur> joueurs = new ArrayList<Joueur>();
j1 = new Joueur("Michou");
j2= new Joueur("MicheMiche");
joueurs.add(j1);
joueurs.add(j2);
p = new Plateau(joueurs);
a = new Allie(j1);
c = new Charles(j2);
j1.setPlateau(p);
j1.setCartePersonnage(a);
j2.setPlateau(p);
j2.setCartePersonnage(c);
}
@Test
void attaquer() {
// Le joueur n'est pas révélé (Charles), il attaque seulement 1 fois.
j2.setRevele(false);
j2.getCartePersonnage().attaquer(j1, 2);
j1.setStat(Joueur.PLAYER_HP, 6);
int pvAllie = j1.getCartePersonnage().getPv();
//on verifie que le joueur qui joue Allie n'est pas full hp
assertNotEquals((j1.getStat(Joueur.PLAYER_HP)),pvAllie);
//je verifie que le joueur de Allie a bien subi 2 de dégâts
assertTrue((j1.getStat(Joueur.PLAYER_HP))==6);
//Le joueur jouant Charles se révèle
j2.setRevele(true);
j2.getCartePersonnage().attaquer(j1, 2);
j1.setStat(Joueur.PLAYER_HP, 6);
//Charles réattaque en infligeant 3 point de blessures
j2.getCartePersonnage().attaquer(j1, 3);
//je verifie que le joueur de Allie a bien subi 5 point de dégâts au total (2 au premier coup et 3 au deuxième)
j1.setStat(Joueur.PLAYER_HP, 3);
assertTrue((j1.getStat(Joueur.PLAYER_HP))==3);
}
}