@ -0,0 +1,21 @@
|
||||
<?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?>
|
||||
|
||||
<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"
|
||||
preserveRatio="true">
|
||||
<image>
|
||||
<Image url="image/personnage/Perso1.png"/>
|
||||
</image>
|
||||
</ImageView>
|
||||
</AnchorPane>
|
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 978 B |
After Width: | Height: | Size: 970 B |
After Width: | Height: | Size: 970 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1012 B |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 2.7 KiB |
@ -0,0 +1,104 @@
|
||||
package controller;
|
||||
|
||||
import javafx.fxml.Initializable;
|
||||
import model.Case;
|
||||
import model.Map;
|
||||
|
||||
public class MapController implements Initializable {
|
||||
|
||||
public Map map;
|
||||
|
||||
@Override
|
||||
public void initialize(java.net.URL location, java.util.ResourceBundle resources) {
|
||||
|
||||
}
|
||||
|
||||
public void createMap(int difficulty) {
|
||||
System.out.println(difficulty);
|
||||
if (difficulty == 1) {
|
||||
|
||||
this.map = new Map(32,30);
|
||||
Case case1 = new Case(1,2,2, true, false,map);
|
||||
Case case2 = new Case(2,3,2, false, false,map);
|
||||
Case case3 = new Case(3,4,2, false, false,map);
|
||||
Case case4 = new Case(4,5,2, false, false,map);
|
||||
Case case5 = new Case(5,5,3, false, false,map);
|
||||
Case case6 = new Case(6,5,4, false, false,map);
|
||||
Case case7 = new Case(7,5,5, false, false,map);
|
||||
Case case8 = new Case(8,5,6, false, false,map);
|
||||
Case case9 = new Case(9,5,7, false, false,map);
|
||||
Case case10 = new Case(10,5,8, false, false,map);
|
||||
map.addCase(case1);
|
||||
map.addCase(case2);
|
||||
map.addCase(case3);
|
||||
map.addCase(case4);
|
||||
map.addCase(case5);
|
||||
map.addCase(case6);
|
||||
map.addCase(case7);
|
||||
map.addCase(case8);
|
||||
map.addCase(case9);
|
||||
map.addCase(case10);
|
||||
}
|
||||
if (difficulty == 2) {
|
||||
map = new Map(32,30);
|
||||
Case case1 = new Case(1,2,2, true, false,map);
|
||||
Case case2 = new Case(2,3,2, false, false,map);
|
||||
Case case3 = new Case(3,4,2, false, false,map);
|
||||
Case case4 = new Case(4,5,2, false, false,map);
|
||||
Case case5 = new Case(5,5,3, false, false,map);
|
||||
Case case6 = new Case(6,5,4, false, false,map);
|
||||
Case case7 = new Case(7,5,5, false, false,map);
|
||||
Case case8 = new Case(8,5,6, false, false,map);
|
||||
Case case9 = new Case(9,5,7, false, false,map);
|
||||
Case case10 = new Case(10,5,8, false, false,map);
|
||||
map.addCase(case1);
|
||||
map.addCase(case2);
|
||||
map.addCase(case3);
|
||||
map.addCase(case4);
|
||||
map.addCase(case5);
|
||||
map.addCase(case6);
|
||||
map.addCase(case7);
|
||||
map.addCase(case8);
|
||||
map.addCase(case9);
|
||||
map.addCase(case10);
|
||||
}
|
||||
if (difficulty == 3) {
|
||||
map = new Map(32,30);
|
||||
Case case1 = new Case(1,2,2, true, false,map);
|
||||
Case case2 = new Case(2,3,2, false, false,map);
|
||||
Case case3 = new Case(3,4,2, false, false,map);
|
||||
Case case4 = new Case(4,5,2, false, false,map);
|
||||
Case case5 = new Case(5,5,3, false, false,map);
|
||||
Case case6 = new Case(6,5,4, false, false,map);
|
||||
Case case7 = new Case(7,5,5, false, false,map);
|
||||
Case case8 = new Case(8,5,6, false, false,map);
|
||||
Case case9 = new Case(9,5,7, false, false,map);
|
||||
Case case10 = new Case(10,5,8, false, false,map);
|
||||
map.addCase(case1);
|
||||
map.addCase(case2);
|
||||
map.addCase(case3);
|
||||
map.addCase(case4);
|
||||
map.addCase(case5);
|
||||
map.addCase(case6);
|
||||
map.addCase(case7);
|
||||
map.addCase(case8);
|
||||
map.addCase(case9);
|
||||
map.addCase(case10);
|
||||
}
|
||||
if (difficulty != 1 && difficulty != 2 && difficulty != 3) {
|
||||
System.out.println("Difficulty not found");
|
||||
}
|
||||
}
|
||||
public Map getMap(){
|
||||
return this.map;
|
||||
}
|
||||
public Case getCaseStart(){
|
||||
return map.getStartCase();
|
||||
}
|
||||
public Case getNextCase(Case c){
|
||||
return map.getNextCase(c);
|
||||
}
|
||||
public Case getStartCase(){
|
||||
return map.getStartCase();
|
||||
}
|
||||
}
|
@ -0,0 +1,234 @@
|
||||
package controller;
|
||||
|
||||
import javafx.animation.Animation;
|
||||
import javafx.animation.KeyFrame;
|
||||
import javafx.animation.Timeline;
|
||||
import javafx.animation.Transition;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.util.Duration;
|
||||
import model.Avatar;
|
||||
import model.Case;
|
||||
import model.Map;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
public class PageGameController implements Initializable {
|
||||
|
||||
@FXML
|
||||
private ImageView map;
|
||||
|
||||
@FXML
|
||||
private Button boutonDe;
|
||||
|
||||
@FXML
|
||||
private ImageView persoImageView;
|
||||
|
||||
PersoController persoController;
|
||||
Case caseActuelle;
|
||||
MapController mapController;
|
||||
Case caseAncienne;
|
||||
String pathPerso;
|
||||
Image imagePerso;
|
||||
|
||||
public void spawnPlayer(ImageView ImageView, int difficulty) {
|
||||
if(persoImageView != null) {
|
||||
System.out.println("persoImageView is null");
|
||||
}else {
|
||||
System.out.println("persoImageView is not null");
|
||||
}
|
||||
this.persoImageView = ImageView;
|
||||
persoController = new PersoController();
|
||||
persoController.createPerso(difficulty, 1);
|
||||
mapController = persoController.getMapController();
|
||||
caseActuelle = mapController.getStartCase();
|
||||
pathPerso = persoController.getPath();
|
||||
imagePerso = new Image(getClass().getClassLoader().getResource(pathPerso+"2.png").toExternalForm());
|
||||
persoImageView.setLayoutY(persoController.getY());
|
||||
persoImageView.setLayoutX(persoController.getX());
|
||||
persoImageView.setFitHeight(32);
|
||||
persoImageView.setFitWidth(32);
|
||||
persoImageView.setImage(imagePerso);
|
||||
|
||||
}
|
||||
|
||||
public void movePlayerNextCase() throws InterruptedException {
|
||||
mapController = persoController.getMapController();
|
||||
Map map = persoController.getMap();
|
||||
caseAncienne = caseActuelle;
|
||||
caseActuelle = mapController.getNextCase(caseActuelle);
|
||||
Timeline timeline = new Timeline();
|
||||
timeline.setCycleCount(1);
|
||||
|
||||
//animation déplacement vers la droite
|
||||
if(caseActuelle.getCoordX() > caseAncienne.getCoordX()){
|
||||
Image imagePerso7 = new Image(getClass().getClassLoader().getResource(pathPerso+"7.png").toExternalForm());
|
||||
Image imagePerso8 = new Image(getClass().getClassLoader().getResource(pathPerso+"8.png").toExternalForm());
|
||||
Image imagePerso9 = new Image(getClass().getClassLoader().getResource(pathPerso+"9.png").toExternalForm());
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(200), event -> {
|
||||
persoImageView.setImage(imagePerso8);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(300), event -> {
|
||||
persoImageView.setImage(imagePerso7);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(400), event -> {
|
||||
persoImageView.setImage(imagePerso9);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(500), event -> {
|
||||
persoImageView.setImage(imagePerso7);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(600), event -> {
|
||||
persoImageView.setImage(imagePerso9);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(700), event -> {
|
||||
persoImageView.setImage(imagePerso7);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(800), event -> {
|
||||
persoImageView.setImage(imagePerso9);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(900), event -> {
|
||||
persoImageView.setImage(imagePerso8);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.play();
|
||||
}
|
||||
//animation déplacement vers la gauche
|
||||
if(caseActuelle.getCoordX() < caseAncienne.getCoordX()){
|
||||
Image imagePerso4 = new Image(getClass().getClassLoader().getResource(pathPerso+"4.png").toExternalForm());
|
||||
Image imagePerso5 = new Image(getClass().getClassLoader().getResource(pathPerso+"5.png").toExternalForm());
|
||||
Image imagePerso6 = new Image(getClass().getClassLoader().getResource(pathPerso+"6.png").toExternalForm());
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(200), event -> {
|
||||
persoImageView.setImage(imagePerso5);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(300), event -> {
|
||||
persoImageView.setImage(imagePerso4);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(400), event -> {
|
||||
persoImageView.setImage(imagePerso6);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(500), event -> {
|
||||
persoImageView.setImage(imagePerso4);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(600), event -> {
|
||||
persoImageView.setImage(imagePerso6);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(700), event -> {
|
||||
persoImageView.setImage(imagePerso4);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(800), event -> {
|
||||
persoImageView.setImage(imagePerso6);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(900), event -> {
|
||||
persoImageView.setImage(imagePerso5);
|
||||
persoImageView.setLayoutX(persoImageView.getLayoutX()+4);
|
||||
}));
|
||||
timeline.play();
|
||||
}
|
||||
//animation déplacement vers le haut
|
||||
if(caseActuelle.getCoordY() < caseAncienne.getCoordY()){
|
||||
Image imagePerso10 = new Image(getClass().getClassLoader().getResource(pathPerso+"10.png").toExternalForm());
|
||||
Image imagePerso11 = new Image(getClass().getClassLoader().getResource(pathPerso+"11.png").toExternalForm());
|
||||
Image imagePerso12 = new Image(getClass().getClassLoader().getResource(pathPerso+"12.png").toExternalForm());
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(200), event -> {
|
||||
persoImageView.setImage(imagePerso11);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(300), event -> {
|
||||
persoImageView.setImage(imagePerso10);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(400), event -> {
|
||||
persoImageView.setImage(imagePerso12);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(500), event -> {
|
||||
persoImageView.setImage(imagePerso10);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(600), event -> {
|
||||
persoImageView.setImage(imagePerso12);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(700), event -> {
|
||||
persoImageView.setImage(imagePerso10);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(800), event -> {
|
||||
persoImageView.setImage(imagePerso12);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(900), event -> {
|
||||
persoImageView.setImage(imagePerso11);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.play();
|
||||
}
|
||||
//animation déplacement vers le bas
|
||||
if(caseActuelle.getCoordY() > caseAncienne.getCoordY()){
|
||||
Image imagePerso1 = new Image(getClass().getClassLoader().getResource(pathPerso+"1.png").toExternalForm());
|
||||
Image imagePerso2 = new Image(getClass().getClassLoader().getResource(pathPerso+"2.png").toExternalForm());
|
||||
Image imagePerso3 = new Image(getClass().getClassLoader().getResource(pathPerso+"3.png").toExternalForm());
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(200), event -> {
|
||||
persoImageView.setImage(imagePerso2);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(300), event -> {
|
||||
persoImageView.setImage(imagePerso1);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(400), event -> {
|
||||
persoImageView.setImage(imagePerso3);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(500), event -> {
|
||||
persoImageView.setImage(imagePerso1);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(600), event -> {
|
||||
persoImageView.setImage(imagePerso3);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(700), event -> {
|
||||
persoImageView.setImage(imagePerso1);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(800), event -> {
|
||||
persoImageView.setImage(imagePerso3);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(900), event -> {
|
||||
persoImageView.setImage(imagePerso2);
|
||||
persoImageView.setLayoutY(persoImageView.getLayoutY()+4);
|
||||
}));
|
||||
timeline.play();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(URL url, ResourceBundle resourceBundle) {
|
||||
}
|
||||
|
||||
public void lancerDe(ActionEvent actionEvent) throws InterruptedException {
|
||||
movePlayerNextCase();
|
||||
System.out.println("lancer de");
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package controller;
|
||||
|
||||
import model.Avatar;
|
||||
import model.Map;
|
||||
|
||||
public class PersoController {
|
||||
|
||||
Avatar avatar;
|
||||
MapController mc;
|
||||
private int test = 2;
|
||||
|
||||
private Map map;
|
||||
|
||||
public void createPerso(int difficulty, int perso) {
|
||||
mc = new MapController();
|
||||
mc.createMap(difficulty);
|
||||
this.map = mc.getMap();
|
||||
System.out.println(map);
|
||||
test = 14;
|
||||
if (perso == 1) {
|
||||
avatar = new Avatar(1, "image/personnage/Perso1.");
|
||||
System.out.println("Perso 1");
|
||||
}
|
||||
if(perso == 2){
|
||||
avatar = new Avatar(2, "image/personnage/Perso2.");
|
||||
System.out.println("Perso 2");
|
||||
}
|
||||
if(perso == 3){
|
||||
avatar = new Avatar(3, "image/personnage/Perso3.");
|
||||
System.out.println("Perso 3");
|
||||
}
|
||||
if(perso != 1 && perso != 2 && perso != 3){
|
||||
System.out.println("Perso non reconnu");
|
||||
}
|
||||
if (avatar == null) {
|
||||
System.out.println("Erreur avatar");
|
||||
} else {
|
||||
System.out.println("Avatar créé");
|
||||
}
|
||||
}
|
||||
|
||||
public Map getMap() {
|
||||
System.out.println(test);
|
||||
return this.map;
|
||||
}
|
||||
|
||||
public MapController getMapController() {
|
||||
return mc;
|
||||
}
|
||||
|
||||
public String getPath(){
|
||||
System.out.println(avatar.getImage());
|
||||
return avatar.getImage();
|
||||
}
|
||||
|
||||
public int getX(){
|
||||
return avatar.getCoordX();
|
||||
|
||||
}
|
||||
|
||||
public int getY(){
|
||||
return avatar.getCoordY();
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/code/ressources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/code/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="11" jdkType="JavaSDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module-library">
|
||||
<library>
|
||||
<CLASSES>
|
||||
<root url="file://$PATH_TO_JFX_11$" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="file://$PATH_TO_JFX_11$" />
|
||||
</SOURCES>
|
||||
<jarDirectory url="file://$PATH_TO_JFX_11$" recursive="false" />
|
||||
<jarDirectory url="file://$PATH_TO_JFX_11$" recursive="false" type="SOURCES" />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library>
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/Downloads/jfoenix-9.0.10.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library>
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/Downloads/libtiled-1.2.3.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="library" name="libtiled-1.2.3" level="project" />
|
||||
<orderEntry type="module-library">
|
||||
<library>
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/Desktop/javax.xml.bind.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
</component>
|
||||
</module>
|