(P?ybxabc-&M6Pm~4N;So($N
z1l!J!bq%TVBARVns@4Bw8d(?*Je~CX$%z=1GI5sAib-3O_|N^;3p(1cx#nn%*BSXR
zzvE(x8uioGf4-x1Ms>z>9XFmgGuK_;mr)-T65O)E_w@CW4;tpueXkf-FqpgC(LJ+O
z&%>Z5$c;0{BV!wPvBQeeJASR-{|gHBD6s?;ecUPF->_EAr9j+4Yw4Eq>^ryrgt8nk
z+TxJuo0uWk6wDgL+Tj01t)NPyO<-EE8B?7ZmmQNP1CtkH!z8f@TimTXd^3J=B-HG_
zyYMvghR+RrjLu3w%Ko$EN6)_`_I*y`fd>`*?wSQGWgBk4=KW)V{V{sd5Ordsl69n!0>lHS2@P-khTQy=%(P0}8tmE5!~!)ic)I$ztaD0e0su6tvg-f<
literal 0
HcmV?d00001
diff --git a/code/ressources/image/personnage/Perso2.4.png b/code/ressources/image/personnage/Perso2.4.png
new file mode 100644
index 0000000000000000000000000000000000000000..86e9fe72bfd39f1ed4b3f0a24fc01e17e939d76a
GIT binary patch
literal 1061
zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sEa{HEjtmSN`?>!lvI6-E$sR$z
z3=CCj3=9n|3=F@3LJcn%7)pT}UnMXwSj}Ky5HFasE6@fgF(<$$#1%+8&F0EF<;CyF
zygA*Hfq^k7GbMt7VG9F;yG+OY;sa%N>s}=@{5hj;CtiEy_?=$|MOJkk`u~27Hec+7
z2@~Ai-S6DF12p8zmoNYR{rmIh573a`cTW5~IQP}`@@d}k=1gqsS5D$rGyMPm|3Pbi
z9UUD$KECPGr*GM^MMPLcUS6Jsm6e~LUrI`!$V0)DKawB&dyFtOY7jb!ka*&
zMM{GFf`K#!aLj+W5Gcr)|rRctjR6Fz_7#VaBQ2e9}Nc_7YEDSN5ko
zocxj|&Av0bK$`N4{6ZMdFDjqKz`*3<>EamTas23%n`N^N1RPYgS@d%+Et6_))Z+=jUfJv)$)L
zr+4Ks`^>pbGMQ`lAKyOj{?!h-htbUAvnF
zpRzI=%s;>PAZye7Y3n(xT6Xet9Ia?vC$>#8%Y|*mn}n9s1#BtTq{VGDBwKVgSI(1;
zx0B^%XWnn(+r(rrjit)yLY%_%-fgefE>UR=ej=kIkiSN8@!#rzppyy<>~C>wV`_nPr_lni^
z^^Xk$n|LnXpY~1vi$=hYokdLC;VgnHrEfVuFt)Sj2>+L?q&i`H8IN?!yZ=i(CMLd-
zOlRC(X|}|{l+xkaJT}o1G4-`My{-|n#K>y=8@8!4qn}6Tt-=TJS&c(*2jw310
zSffSeEDIM<`Zw`&N6b!*6>k}vet7CeJU>w&_P8#t<7v^$X{)Dddxt+1SQxS6>MD(}
zbp>Aq79KieDK@R+tH9z%y@8P}>tCOBxBnk_HPzEEbiKLsoAU+k39-6j-IubZvX%Q
literal 0
HcmV?d00001
diff --git a/code/ressources/image/personnage/Perso2.5.png b/code/ressources/image/personnage/Perso2.5.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6deb759d3056871b3783f6bc6366c183df4c1d2
GIT binary patch
literal 1061
zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sEa{HEjtmSN`?>!lvI6-E$sR$z
z3=CCj3=9n|3=F@3LJcn%7)pT}UnMXwSj}Ky5HFasE6@fgu_C}H#1%+8&F0EF<;CyF
zEG{OtIo*3@Ovn7<17&vWUL`a9IiqeTUfb-obye4)E64BrIw+#e
z7dv6X1b27$J9q8?&H3`>%fEmB{`~m^H01Z46F(2meKoy&nzy_;6WjWgllavP|NsAg
z(Ar-|M~9D(Z~FA`!?(`K4s$UQON%(v)B17s7acQTZ$e1}1Y)7sn8f<432wF1uyG(=azJ
z`OdCw$zfBj-N?JHHX${|fb0GLw8=VLIZv*|U$uP5@?+nNq`4Yj85cI{t!-Q^KEL7G
zNyRFSBXS>IgtmT~X!n?3$nwUC_?Q1HPBx#d`6L%7|5!d|@w)fUr~fy7OrIquyW;8P
zCtq@QdA@(&@762u(!};-rbO5*wS3n&2|<|!2Le?D_AGH-Q0!arBINerW{!N>7^#b)
z4XMpee7~yF6dtuY*h@G3tl^8A#c*>{TbIj>_6hFUOOz_NE;!e5lOfr4!e)oanBEIY
z5wG`rUns%GxRh~6M88E>M1jf$)+m+_a;ee!v(yx)iOe$=IJc*;t>@NPJ7IyHYGQk4
zNAoY-6s5={c1PLHws1DbG?te;()K3{JyLkkpDxDm@}5-A1Lv+E!m=%gk1HtnpDD0C
zdnnzG{r9I&If^P9O#JVO<%nujtW#`c77U5yi6}7pU}h8FaxDCqLSJ(0xp{{=FZ}3I
zbk;O^*Rr{xx5h(I(L`!&-Ods
z0nHyxIL@_x+s$ga=Ubx7v6RSZ&-ZnQzglh2qZzLw-n}O}z%{TX_=M&rJEv_rb<_5L
z+7q$1%Wlshp4FesKSpkQrLMr4y6;pqm-+VBu90CKmQ!2IZCiF1?Yx<@s;m6*w*C*j
zJY7fU-#heXLzU{i-d(K^GtA~reO($E`ubCqjZ~T144-AUuiq{E?j?Wu<&SFp#QnG5
zeg7TxP+wmnJ@lq*(0^chQY~?fC`m~yNwrEYN(E93Mg~TPx`sx&29_a)rdCE~Rt84e
n1_o9J22(HYo`|9$H$NpatrE9}Cq2x%Kn)C@u6{1-oD!M!lvI6-E$sR$z
z3=CCj3=9n|3=F@3LJcn%7)pT}UnMXwSj}Ky5HFasE6@fgF+ad3#1%+8&F0EF<;CyF
zygA*Hfq^lCfnf^+gS$+}{Ne*;cI&2j%iD?9HhXPd)ph9CL6L0?4BC9L6DCY>cXz*Y
z=MGT&moH!b{rmUl&mW-n-*-;@JUI8&^m3psb0)U+D<|=*8UFwO|Dd(Mj*bo=AK&!p
z)3bU+kT^*N5NY+pS&xJ%8@HIdb3M
zogekH4%vQUV%(7$t2L#E<@C|g&>}!!fB0(%IxX;8AH;W{PdJycv2)i}
z?KhjEo3g|^JRj}R^8EG2r$d8_sWE(|OE;tI;^Py;%GfHIGs@Z|F4fpcf3dflc{y|c`UzQfv#lFm9*OZ=e){Gd{pXv1
zT1qh;DKRoV_UomYY=3=i<$wO8PRRjJf^&h%ib1u+HKHUXu_V9nO2Eg!}my;e?Sckp00i_>zopr04X)1
ArT_o{
literal 0
HcmV?d00001
diff --git a/code/ressources/image/personnage/Perso2.7.png b/code/ressources/image/personnage/Perso2.7.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca479151b5a328b757b8fb72c6a563398f959161
GIT binary patch
literal 1037
zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sEa{HEjtmSN`?>!lvI6-E$sR$z
z3=CCj3=9n|3=F@3LJcn%7)pT}UnMXwSj}Ky5HFasE6@fgF(<$$#1%;MJ2GdT@^YFD
zw1_b%Gv!q>!xjdH2nL4sEnDowYn#2cuIf5;<@lXn2Sv2`V$1B-%`ZOi|NR9}6q1yu7@Kun0dtzlVoMVPT<^l$4T^l9ra1ot<4|WaOoi6CyyP
zMM{GFf`K#!aLj+W5Gcr)?NMQuIx{F
zIQgZuyi1N}gEZwA`Gqi^UsOJefq_ZK)5S5wLi@6s&
z3dpIncq-^xY3m%m>LtkdYNDgNzW$NyeJLll?-#oA;(8@lE!PJdNu^kB1>2Kl2mBqL
zWNl?K_#$e;=Qw?`ZPR<7idAlmt?AuzFZ>H0B@3-%o^blJf}=>nB$bVYcXU=<>|Mjz
zs3B+~knOpFO{zjaAh>g58;_Wf9$$u-+X?O#mAFVj6|TJtZn4PCX^99+h>QPtc9TJn
zEZeLZECLVz>TkMmW_9$-P9+}47p>-7O4yd(;+11Ie8v%V>GyH>Gvyh=d3zbclqyy)
zKfG1#&X0O2F%9K!Y3eL0sQ-o{!L<
zb#^hm%af~|D?{o&Pug9VSQF3v#phRRwOG>ZWo0W2mWtn5_WI1nMZZ`}m#1aOemr+^
z78}Qr=X$4O0;jCgIqm55G$?#YX5fxetB&;o-ePmS4d08~nO~hYb<>l>U%583A32*A
z{gfp=a%%lI$<6IM7u>AcdrouJ^!ew+E%^_IhF&e({@U(PiP7=DjXg(`{&^gGSn!lvI6-E$sR$z
z3=CCj3=9n|3=F@3LJcn%7)pT}UnMXwSj}Ky5HFasE6@fgF)hF+#1%;MJ2E@X2HL_H
zl$r7>nPCe9Lj(gu`<5+s;S8+#WHG
zpFo=Oi~K?u&o3&U#lXO%<>}%W;&J@wr0nWj20X2ETTg3jQE<=e%&jVPQfS=z^#A{z
zo@GwEC*HR6m3Nxg{`uJp51~i@MG8DMU;6e7vxqfNFgO{CF53j21`7O;Lxc~J|!(VkfwD|9C5pldLc)V4>@le@rR*#qZ
z8Rr>lY_2e{sb32&Wp;3?U&J_p@dC@8R}-JwvDw;qupN_FUCMr7<#5*!UIYjqj7
zi3(ig=U?FI>A=GLB*BV@qoYPY;mb8C{t0r03=b4oGT2n!l>Nw&Z15-%o{=T=QTt6?
z+(qWKRf50goltsuasm6iibVj|DL^>_nKcYJYs0z6*IY7RT%3q
zBZqfF`!|-i3xyxtk^A5hE7tl#`2utJk!5$Q`~;5+@0w_`b>StE-(O-Tzq}IhN6T=@
zeBT!imYVT%O+Py(d@^R(llRN;F+*S0TaAV)qjRZ|$986V9B!Dg+vfiBb#j+E9Cn-u
z{OK#=YREKW_oD)hIo5LhNA0Aq>A$<9c)CO5w9w{*wgL(g1?=IW%LTiIyPpcJRBew4
z3$2q&+z_+&hsvo>C01`&Up%nB#y?cojbZcES8}U=eQ9g_`6kgSHvIXfHRqncsxzyo
zDd&IvHSP1ik3WAp_J2RSz?C^hPrT|5(|$&l_2Gf+b8_>5Nl3NCHKHUXu_V9nO2Eg!}EKVmOu>*p00i_
I>zopr0Kut=i~s-t
literal 0
HcmV?d00001
diff --git a/code/ressources/image/personnage/Perso2.9.png b/code/ressources/image/personnage/Perso2.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2a75189ea8eebf926017eac5937906924fb777b
GIT binary patch
literal 1012
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
literal 0
HcmV?d00001
diff --git a/code/ressources/image/terrain/arbre1h.png b/code/ressources/image/terrain/arbre1h.png
new file mode 100644
index 0000000000000000000000000000000000000000..7962c8a9821c63ba2d881a5e03309bdfe6d063b6
GIT binary patch
literal 2725
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
U$9LKC(uY~V%*YyEW8fV7AIL-)ApigX
literal 0
HcmV?d00001
diff --git a/code/src/controller/GameConfigMenuController.java b/code/src/controller/GameConfigMenuController.java
index 66c736e..0fda1df 100644
--- a/code/src/controller/GameConfigMenuController.java
+++ b/code/src/controller/GameConfigMenuController.java
@@ -73,7 +73,7 @@ public class GameConfigMenuController implements Initializable {
void launchGame(MouseEvent event) throws Exception {
AnchorPane pane = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/viewGame.fxml")));
GamePlayController gm = new GamePlayController();
- AnchorPane gp = gm.mapInitialisation(this.difficulty);
+ AnchorPane gp = gm.mapInitialisation(this.difficulty, this.personnage);
levelRoot.getChildren().addAll(gp, pane);
}
diff --git a/code/src/controller/GamePlayController.java b/code/src/controller/GamePlayController.java
index 7fa0234..449b16a 100644
--- a/code/src/controller/GamePlayController.java
+++ b/code/src/controller/GamePlayController.java
@@ -1,100 +1,347 @@
package controller;
+import javafx.animation.KeyFrame;
+import javafx.animation.Timeline;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
import javafx.fxml.Initializable;
-import javafx.scene.Scene;
-import javafx.scene.canvas.Canvas;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.image.WritableImage;
import javafx.scene.layout.AnchorPane;
-import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
-import javafx.scene.shape.Rectangle;
-import javafx.scene.text.Font;
-import javafx.scene.text.Text;
-import javafx.stage.Stage;
+import javafx.util.Duration;
+import model.Case;
+import model.Map;
+import java.io.IOException;
import java.net.URL;
+import java.util.Objects;
import java.util.ResourceBundle;
public class GamePlayController implements Initializable {
- private final int tileSize = 20 ;
+ private final int tileSize = 20 ;
- private AnchorPane FirstAnchor;
+ public ImageView persoImageView;
+ @FXML public AnchorPane levelRoot;
- @Override
- public void initialize(URL url, ResourceBundle resourceBundle) {
+ PageGameController pageGameController;
- }
+ private final Image w = new Image("/image/terrain/chemin.png");
+ private final Image b = new Image("/image/terrain/herbe.png");
+ private final Image a = new Image("/image/terrain/arbre1h.png");
+ private final Image c = new Image("/image/terrain/arbre1b.png");
- public AnchorPane mapInitialisation(int difficulty){
+ private final PersoController persoController = new PersoController();
+ Case caseActuelle;
+ MapController mapController;
+ Case caseAncienne;
+ String pathPerso;
+ Image imagePerso;
- if(difficulty == 1){
- Image w = new Image("/image/terrain/chemin.png");
- Image b = new Image("/image/terrain/herbe.png");
+ @FXML
+ @Override
+ public void initialize(URL url, ResourceBundle resourceBundle) {
+ }
- Image[][] grid = {
- {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
- {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b}
-
- };
+ public AnchorPane spawnPlayer(int difficulty, int perso) throws NullPointerException, IOException {
+ persoController.createPerso(difficulty, perso);
+
+ mapController = persoController.getMapController();
+ caseActuelle = mapController.getStartCase();
+ pathPerso = persoController.getPath() + "2.png";
+ System.out.println(pathPerso);
+ AnchorPane test = new AnchorPane();
+ persoImageView = new ImageView(new Image(pathPerso));
+ test.getChildren().add(persoImageView);
+ return test;
+
+ /*
+ persoImageView.setLayoutY(persoController.getY());
+ persoImageView.setLayoutX(persoController.getX());
+ persoImageView.setFitHeight(32);
+ persoImageView.setFitWidth(32);
+ persoImageView.setImage(new Image(pathPerso));
+ */
+ }
- GridPane gridPane = new GridPane();
+ public void movePlayerNextCase() throws InterruptedException {
+ 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()){
+ System.out.println(pathPerso + "7.png");
+ Image imagePerso7 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "7.png")).toExternalForm());
+ Image imagePerso8 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "8.png")).toExternalForm());
+ Image imagePerso9 = new Image(Objects.requireNonNull(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();
+ }
+ }
- // for visualizing the different squares:
+ public void lancerDe(ActionEvent actionEvent) throws InterruptedException {
+ movePlayerNextCase();
+ System.out.println("lancer de");
+ }
- gridPane.setStyle("-fx-background-color: grey;");
- for (int y = 0 ; y < grid.length ; y++) {
- for (int x = 0 ; x < grid[y].length ; x++) {
- ImageView imageView = new ImageView(grid[y][x]);
- imageView.setFitWidth(tileSize);
- imageView.setFitHeight(tileSize);
- gridPane.add(imageView, x, y);
+ public AnchorPane mapInitialisation(int difficulty, int perso) throws IOException {
+
+ if(difficulty == 1){
+
+ Image[][] grid = {
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,w,w,w,w,w,w,w,w,w,w,w,w,w,w,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,w,w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b}
+
+ };
+
+ Image[][] grid2 = {
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,a,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,c,b,b,b,b,b,b,b,b,b,b,b,b,b,b,a,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,c,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
+ {b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b}
+ };
+
+ GridPane gridPane = new GridPane();
+
+ // for visualizing the different squares:
+
+ gridPane.setStyle("-fx-background-color: grey;");
+
+ for (int y = 0 ; y < grid.length ; y++) {
+ for (int x = 0 ; x < grid[y].length ; x++) {
+ ImageView imageView = new ImageView(grid[y][x]);
+ imageView.setFitWidth(tileSize);
+ imageView.setFitHeight(tileSize);
+ gridPane.add(imageView, x, y);
+ }
}
- }
- AnchorPane FirstAnchor = new AnchorPane();
- FirstAnchor.getChildren().add(gridPane);
+ for (int y = 0 ; y < grid2.length ; y++) {
+ for (int x = 0 ; x < grid2[y].length ; x++) {
+ if(grid2[y][x] == b) continue;
+ ImageView imageView = new ImageView(grid2[y][x]);
+ imageView.setFitWidth(tileSize);
+ imageView.setFitHeight(tileSize);
+ gridPane.add(imageView, x, y);
+ }
+ }
- return FirstAnchor;
+ AnchorPane FirstAnchor = new AnchorPane();
+ FirstAnchor.getChildren().addAll(gridPane,spawnPlayer(difficulty, perso));
+ return FirstAnchor;
}
else if(difficulty == 2){
- Image w = new Image("/image/terrain/chemin.png");
- Image b = new Image("/image/terrain/herbe.png");
-
Image[][] grid = {
{w,w,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
@@ -147,8 +394,11 @@ public class GamePlayController implements Initializable {
AnchorPane FirstAnchor = new AnchorPane();
FirstAnchor.getChildren().add(gridPane);
+ System.out.println("difficulty : " + difficulty);
- return FirstAnchor;
+ spawnPlayer(difficulty, perso);
+
+ return FirstAnchor;
}
else{
@@ -207,6 +457,10 @@ public class GamePlayController implements Initializable {
AnchorPane FirstAnchor = new AnchorPane();
FirstAnchor.getChildren().add(gridPane);
+ System.out.println("difficulty : " + difficulty);
+
+ spawnPlayer(difficulty, perso);
+
return FirstAnchor;
}
diff --git a/code/src/controller/MainPageController.java b/code/src/controller/MainPageController.java
index 3f78b2c..fbbb4f7 100644
--- a/code/src/controller/MainPageController.java
+++ b/code/src/controller/MainPageController.java
@@ -7,7 +7,9 @@ import javafx.scene.control.Button;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
+import launcher.Main;
+import java.io.IOException;
import java.net.URL;
import java.util.Objects;
import java.util.ResourceBundle;
@@ -29,11 +31,6 @@ public class MainPageController implements Initializable {
@FXML
private ImageView loadGame;
- @FXML
- void exitGame(MouseEvent event) {
- System.exit(0);
- }
-
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
@@ -50,4 +47,15 @@ public class MainPageController implements Initializable {
AnchorPane pane = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/GameConfigurationMenu.fxml")));
mainRoot.getChildren().setAll(pane);
}
+
+ @FXML
+ void exitGame(MouseEvent event) {
+ try{
+ Main.serialize();
+ }
+ catch(IOException e){
+ //System.out.println("Could not save the progress :(");
+ }
+ System.exit(0);
+ }
}
diff --git a/code/src/controller/MapController.java b/code/src/controller/MapController.java
new file mode 100644
index 0000000..dde907c
--- /dev/null
+++ b/code/src/controller/MapController.java
@@ -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();
+ }
+}
diff --git a/code/src/controller/PageGameController.java b/code/src/controller/PageGameController.java
new file mode 100644
index 0000000..840e19f
--- /dev/null
+++ b/code/src/controller/PageGameController.java
@@ -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");
+ }
+}
diff --git a/code/src/controller/PersoController.java b/code/src/controller/PersoController.java
new file mode 100644
index 0000000..6769098
--- /dev/null
+++ b/code/src/controller/PersoController.java
@@ -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();
+ }
+}
diff --git a/code/src/launcher/Main.java b/code/src/launcher/Main.java
index b6859ae..cf6c039 100644
--- a/code/src/launcher/Main.java
+++ b/code/src/launcher/Main.java
@@ -23,6 +23,8 @@ public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
+ deserialize();
+
Parent root = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MainPage.fxml")));
primaryStage.setTitle("The Adventurer");
primaryStage.setScene(new Scene(root, 900, 600));
@@ -42,39 +44,15 @@ public class Main extends Application {
song.addList(song3);
song.addList(song4);
song.play();
- //fin musique
- //début map
- //Map map = new Map(30,5,5,20,20);
- Map 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);
- map.addCase(case1);
- map.addCase(case2);
- map.addCase(case3);
- map.addCase(case4);
- Avatar avatar1 = new Avatar(1, "/image/personnage/Person1.2.png");
- avatar1.setCoord(map.getCoordStartX(), map.getCoordStartY());
- //fin map
-
-
-
-
-
- //fin map
-
}
- /*
+
@Override
public void stop(){
System.out.println("Stopping");
song.stop();
}
- */
-
public static Database getDatabase() {
@@ -85,7 +63,7 @@ public class Main extends Application {
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("database.txt"))) {
out.writeObject(currentd);
} finally {
- //System.out.println("Saved!");
+ System.out.println("Saved!");
System.exit(0);
}
}
@@ -100,5 +78,9 @@ public class Main extends Application {
currentd = new Database();
}
}
+
+ public static void main(String[] args) {
+ launch(args);
+ }
}
diff --git a/code/src/model/DataTable.java b/code/src/model/DataTable.java
index c46f41d..d608263 100644
--- a/code/src/model/DataTable.java
+++ b/code/src/model/DataTable.java
@@ -6,33 +6,74 @@ import java.io.IOException;
import java.io.Serializable;
public class DataTable implements Serializable {
- private static int id=0;
+
+ private static int id = 0;
private int gameId;
- private int score;
+
+ private String playerName;
+ private int Maxscore;
private int rounds;
+ private double timeElapsed;
+ public DataTable(int levelNumber) {
+ id++;
+ this.gameId = id;
+ }
- public DataTable(){
+ public DataTable() {
id++;
- this.gameId=id;
+ this.gameId = id;
+ this.Maxscore = 0;
+ this.timeElapsed = 0;
+ this.playerName = "";
+ this.rounds = 0;
//this.score=score; Calcul du score avec la difficulté !
}
//Function update
+ public void update(int score, String name, double time, int rounds) {
+ this.Maxscore = score;
+ this.playerName = name;
+ this.timeElapsed = time;
+ this.rounds = rounds;
+ }
- public void saveGame(){
+ public void saveGame() {
Main.getDatabase().getDatabaseFiles().add(this);
- try{
+ try {
Main.serialize();
+ } catch (IOException e) {
+ System.out.println("Cant close stream");
}
- catch (IOException e){
- //System.out.println("Cant close stream");
- }
}
- public String toString()
- {
- return " Valeur a mettre";
+ public double getTimeElapsed() {
+ System.out.println(this.timeElapsed);
+ return this.timeElapsed;
+ }
+
+ public int maxScore() {
+ System.out.println(this.Maxscore);
+ return this.Maxscore;
+ }
+
+ public String playerName() {
+ System.out.println(this.playerName);
+ return this.playerName;
+ }
+
+ public int getRounds(){
+ System.out.println(this.rounds);
+ return this.rounds;
+ }
+
+ public int getGameID(){
+ System.out.println(this.gameId);
+ return this.gameId;
+ }
+
+ public String toString() {
+ return this.playerName + " : " + this.Maxscore;
}
}
\ No newline at end of file
diff --git a/code/src/model/Database.java b/code/src/model/Database.java
index b6fb485..8e6495e 100644
--- a/code/src/model/Database.java
+++ b/code/src/model/Database.java
@@ -11,7 +11,7 @@ public class Database implements Serializable {
private final ArrayList databaseFiles;
public Database() {
- this.maxScore = 1;
+ this.maxScore = 0;
databaseFiles = new ArrayList();
}
@@ -19,8 +19,8 @@ public class Database implements Serializable {
return maxScore;
}
- public void setMaxScore(int maxLevel) {
- if (this.maxScore < maxLevel) this.maxScore = maxLevel;
+ public void setMaxScore(int maxScore) {
+ if (this.maxScore < maxScore) this.maxScore = maxScore;
}
public void addData(DataTable d) {
diff --git a/code/src/model/Map.java b/code/src/model/Map.java
index 2a8acda..e256464 100644
--- a/code/src/model/Map.java
+++ b/code/src/model/Map.java
@@ -16,23 +16,18 @@ public class Map {
public void addCase(Case c) {
this.map.add(c);
}
-
public void removeCase(Case c) {
this.map.remove(c);
}
-
public ArrayList getMap() {
return this.map;
}
-
public int getSizeTile() {
return this.sizeTile;
}
-
public int getSizeMap() {
return this.sizeMap;
}
-
public int getCoordStartX(){
for(Case c : this.map){
if(c.isStart == true){
@@ -41,7 +36,6 @@ public class Map {
}
return 666; //code erreur
}
-
public int getCoordStartY(){
for(Case c : this.map){
if(c.isStart == true){
@@ -50,7 +44,29 @@ public class Map {
}
return 666; //code erreur
}
+ public Case getNextCase(Case c){
+ int i;
+ int j;
+ for(i = 0; i < this.map.size(); i++){
+ if(c == this.map.get(i)){
+ j=i+1;
+ System.out.println("i : "+i+" j : "+j);
+ return this.map.get(j);
+ }
+ }
+ return c;
+ }
+ public Case getStartCase(){
+ for(Case c : this.map){
+ if(c.isStart == true){
+ return c;
+ }
+ }
+ return null;
+ }
}
+
+
diff --git a/projetjavafx.iml b/projetjavafx.iml
new file mode 100644
index 0000000..3f59aa3
--- /dev/null
+++ b/projetjavafx.iml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file