Fonction bonus et malus !

main
ZartaX0O3 3 years ago
parent e06e64c60c
commit 061d73a8a9

@ -16,13 +16,13 @@
<Label layoutX="7.0" layoutY="7.0">
<graphic>
<ImageView fitHeight="46.0" fitWidth="32.0" pickOnBounds="true" preserveRatio="true">
<Image url="image/button/burger.png" />
<Image url="@../image/button/burger.png" />
</ImageView>
</graphic>
</Label>
<ImageView fitHeight="24.0" fitWidth="24.0" layoutX="762.0" layoutY="11.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@image/exit.png" />
<Image url="@../image/button/exit.png" />
</image>
</ImageView>
</children>

@ -21,7 +21,7 @@ public class CreatureController {
private Creature creature;
@FXML public ImageView creatureImageView;
@FXML public AnchorPane levelRoot;
private Map map;
private final Map map;
private MapCreatureController mapCreatureController;
private Case caseCreatureStart;
private Thread Creature;

@ -3,23 +3,28 @@ package controller;
import com.jfoenix.controls.JFXButton;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.image.WritableImage;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Duration;
import model.*;
import model.Case;
import model.GameLoop;
import model.GameTime;
import model.Map;
import model.ResultatTxt;
import java.awt.*;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
@ -49,6 +54,8 @@ public class GamePlayController implements Initializable {
private Text resultat4;
private Text resultat5;
private int nbTour = 0;
private int numCase = 0;
int l;
public int difficulty;
public int perso;
@ -119,7 +126,7 @@ public class GamePlayController implements Initializable {
resultat5.setFill(Color.WHITE);
resultat5.setStyle("-fx-font: 20 arial; ");
button = new JFXButton("");
levelRoot.getChildren().addAll(text,textTimer,textEnd,button, resultat1, resultat2, resultat3, resultat4, resultat5);
levelRoot.getChildren().addAll(text,textTimer,textEnd,button,resultat1,resultat2,resultat3,resultat4);
gameTime = new GameTime(textTimer);
gameTime.start();
PersoMouv = false;
@ -155,7 +162,6 @@ public class GamePlayController implements Initializable {
if(caseActuelle != null){
//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());
@ -195,9 +201,9 @@ public class GamePlayController implements Initializable {
}
//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());
Image imagePerso4 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "4.png")).toExternalForm());
Image imagePerso5 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "5.png")).toExternalForm());
Image imagePerso6 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "6.png")).toExternalForm());
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> {
persoImageView.setImage(imagePerso5);
persoImageView.setLayoutX(persoImageView.getLayoutX() - avancementCase);
@ -234,9 +240,9 @@ public class GamePlayController implements Initializable {
}
//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());
Image imagePerso10 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "10.png")).toExternalForm());
Image imagePerso11 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "11.png")).toExternalForm());
Image imagePerso12 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "12.png")).toExternalForm());
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> {
persoImageView.setImage(imagePerso11);
persoImageView.setLayoutY(persoImageView.getLayoutY() - avancementCase);
@ -273,9 +279,9 @@ public class GamePlayController implements Initializable {
}
//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());
Image imagePerso1 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "1.png")).toExternalForm());
Image imagePerso2 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "2.png")).toExternalForm());
Image imagePerso3 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "3.png")).toExternalForm());
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> {
persoImageView.setImage(imagePerso2);
persoImageView.setLayoutY(persoImageView.getLayoutY() + avancementCase);
@ -330,10 +336,10 @@ public class GamePlayController implements Initializable {
button.setLayoutY(752);
button.setPrefHeight(30);
button.setPrefWidth(119);
button.setText("Retour au début");
button.setOnAction(event -> {
AnchorPane pane = null;
try {
pane = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MainPage.fxml")));
AnchorPane pane = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MainPage.fxml")));
Stage a = new Stage();
a.setTitle("The Adventurer");
a.setScene(new Scene(pane, 900, 600));
@ -341,40 +347,25 @@ public class GamePlayController implements Initializable {
a.show();
Stage stage = (Stage) levelRoot.getScene().getWindow();
stage.close();
levelRoot.getChildren().setAll(pane);
} catch (IOException e) {
e.printStackTrace();
}
levelRoot.getChildren().setAll(pane);
}
);
}
public void lancerDe() {
//Case actual = persoController.getActualCase();
if(PersoMouv == false) {
Case actuel = persoController.getActualCase();;
if(!PersoMouv) {
animationDe();
nbTour++;
}
//verification(actual);
}
public void verification(Case actual) {
Map map = mapController.getMap();
ArrayList<Case> array = map.getMap();
actual = mapController.getCase(actual, diceNumber);
for (Case c : array) {
if (actual.getCoordX() == c.getCoordX() && actual.getCoordY() == c.getCoordY() && c.isBonus()) {
System.out.println("BONUS");
System.out.println("X perso : " + actual.getCoordX() + " Y perso : " + actual.getCoordY() + " X perso : " + c.getCoordX() + " Y perso : " + c.getCoordY() + " Bonus : " + c.isBonus());
}
if (actual.getCoordX() == c.getCoordX() && actual.getCoordY() == c.getCoordY() && c.isMalus()) {
System.out.println("MALUS");
}
}
}
public void animationDe() {
personnage = new Thread("personnage") {
@ -389,14 +380,75 @@ public class GamePlayController implements Initializable {
String path = "image/dé/d" + diceNumber + ".png";
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(50 * i), event -> de.setImage(new Image(path))));
}
Map map = mapController.getMap();
Case c = map.getMap().get(numCase+diceNumber);
if(c.isBonus()){
Bonus bonus = Bonus.randomGet();
switch (Objects.requireNonNull(bonus)){
case MOVE_FORWARD_1:
System.out.println("AJOUT DE 1");
diceNumber+=1;
break;
case MOVE_FORWARD_3:
System.out.println("AJOUT DE 3");
diceNumber+=3;
break;
case MOVE_FORWARD_5:
System.out.println("AJOUT DE 5");
diceNumber+=5;
break;
case MOVE_FORWARD_8:
System.out.println("AJOUT DE 8");
diceNumber+=8;
break;
}
}
else if(c.isMalus()){
Malus malus = Malus.randomGet();
switch (Objects.requireNonNull(malus)){
case MOVE_BACKWARD_1:
System.out.println("SUPRESSION DE 1");
diceNumber-=1;
break;
case MOVE_BACKWARD_3:
System.out.println("SUPRESSION DE 3");
if(diceNumber > 3){
diceNumber-=3;
} else {
diceNumber=0;
}
break;
case MOVE_BACKWARD_5:
System.out.println("SUPRESSION DE 5");
if(diceNumber > 5){
diceNumber-=5;
} else {
diceNumber=0;
}
break;
case LAST_POSITION:
System.out.println("SUPRESSION DE DICE");
diceNumber=0;
break;
}
}
numCase+=diceNumber;
timeline.play();
try {
personnage.sleep(700);
System.out.println("Lancement affichage resulsta");
affichageResultat();
} catch (InterruptedException e) {
e.printStackTrace();
}
for (i = 0; i < diceNumber; i++) {
try {
PersoMouv = true;
@ -406,13 +458,14 @@ public class GamePlayController implements Initializable {
e.printStackTrace();
}
}
System.out.println(persoController.getActualCase().getCoordX() + " " + persoController.getActualCase().getCoordY());
System.out.println(numCase);
PersoMouv = false;
}
};
personnage.start();
}
public void affichageResultat(){
System.out.println("affichageResultat()");
String ancienResultat1;
String ancienResultat2;
String ancienResultat3;
@ -458,6 +511,7 @@ public class GamePlayController implements Initializable {
}
}
}
public void saveScore(){
//difficulty
int resultat = gameTime.getTime();

@ -87,7 +87,6 @@ public class MapController implements Initializable {
if(k == 1 || k == 2) bonus = true;
else if(k == 3) malus = true;
System.out.println("X : " + i[0] + " Y : " + i[1] + " Start : " + boolStart + " End : " + boolEnd + " Bonus : " + bonus + " Malus : " + malus);
Case case1 = new Case(j, i[0], i [1], boolStart, bonus, malus, boolEnd, map);
map.addCase(case1);
j++;

@ -43,7 +43,6 @@ public class PersoController {
persoImageView.setId("persoImageView");
persoImageView.setFitWidth(35);
persoImageView.setFitHeight(35);
System.out.println("X :" + getX());
persoImageView.setLayoutX(getX()*map.getSizeTile()-5);
persoImageView.setLayoutY(getY()*map.getSizeTile()-5);
test.getChildren().add(persoImageView);
@ -71,6 +70,10 @@ public class PersoController {
return this.actualCase;
}
public Case getOldCase() {
return this.oldCase;
}
public void setOldCase(Case old){
this.oldCase = old;
}

@ -7,20 +7,16 @@ import javafx.scene.Scene;
import javafx.stage.Stage;
import model.*;
import java.io.*;
import java.util.ArrayList;
import java.util.Objects;
public class Main extends Application {
private static Database currentd;
private Album song;
@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));
@ -28,7 +24,7 @@ public class Main extends Application {
primaryStage.show();
//début musique
ArrayList<Musique> musiqueListe = new ArrayList<Musique>();
ArrayList<Musique> musiqueListe = new ArrayList<>();
Musique song1 = new Musique("/musique/medieval_musique1.mp3",211000);
Musique song2 = new Musique("/musique/medieval_musique2.mp3",248000);
Musique song3 = new Musique("/musique/medieval_musique3.mp3",248000);
@ -49,31 +45,6 @@ public class Main extends Application {
}
public static Database getDatabase() {
return currentd;
}
public static void serialize() throws IOException {
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("database.txt"))) {
out.writeObject(currentd);
} finally {
System.out.println("Saved!");
System.exit(0);
}
}
public static void deserialize() throws ClassNotFoundException, IOException {
ObjectInputStream in = null;
try {
in = new ObjectInputStream(new FileInputStream("database.txt"));
currentd = (Database) in.readObject();
in.close();
} catch (FileNotFoundException | NullPointerException e) {
currentd = new Database();
}
}
public static void main(String[] args) {
launch(args);
}

@ -8,7 +8,7 @@ public enum Bonus {
MOVE_FORWARD_8,
NEW_DICE;
public Bonus randomGet(){
public static Bonus randomGet(){
int i = (int) (Math.random() * 8);
switch (i) {
case 0:

@ -1,67 +0,0 @@
package model;
import launcher.Main;
import java.io.IOException;
import java.io.Serializable;
public class DataTable implements Serializable {
private static int id = 0;
private int gameId;
private int Maxscore;
private int rounds;
private double timer;
public DataTable(int levelNumber) {
id++;
this.gameId = id;
}
public DataTable() {
id++;
this.gameId = id;
this.Maxscore = 0;
this.timer = 0;
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.timer = time;
this.rounds = rounds;
}
public void saveGame() {
Main.getDatabase().getDatabaseFiles().add(this);
try {
Main.serialize();
} catch (IOException e) {
System.out.println("Cant close stream");
}
}
public double getTimeElapsed() {
System.out.println(this.timer);
return this.timer;
}
public int maxScore() {
System.out.println(this.Maxscore);
return this.Maxscore;
}
public int getRounds(){
System.out.println(this.rounds);
return this.rounds;
}
public int getGameID(){
System.out.println(this.gameId);
return this.gameId;
}
}

@ -1,41 +0,0 @@
package model;
import java.io.*;
import java.util.ArrayList;
public class Database implements Serializable {
private int maxScore;
private static Database db;
private final ArrayList<DataTable> databaseFiles;
public Database() {
this.maxScore = 0;
databaseFiles = new ArrayList<DataTable>();
}
public int getMaxScore() {
return maxScore;
}
public void setMaxScore(int maxScore) {
if (this.maxScore < maxScore) this.maxScore = maxScore;
}
public void addData(DataTable d) {
databaseFiles.add(d);
}
public void removeData(DataTable d) {
databaseFiles.remove(d);
}
public static void resetScore() {
db = new Database();
}
public ArrayList<DataTable> getDatabaseFiles() {
return databaseFiles;
}
}

@ -20,7 +20,6 @@ public class GameLoop {
}
public void start() {
System.out.println("GameLoop.start()");
c = new CreatureController(lv,map, creatureImageView);
timer = new Thread("timer") {
public void run() {
@ -33,7 +32,7 @@ public class GameLoop {
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Timer = " + i);
//System.out.println("Timer = " + i);
i = nbSeconde;
try {
timer.sleep(1000);
@ -41,7 +40,7 @@ public class GameLoop {
e.printStackTrace();
}
}else{
System.out.println("Timer = " + i);
//System.out.println("Timer = " + i);
i--;
try {
timer.sleep(1000);

@ -7,7 +7,7 @@ public enum Malus {
MOVE_BACKWARD_5, // Recule de 5
LAST_POSITION; // Retour a la position initiale
public Malus randomGet(){
public static Malus randomGet(){
int i = (int) (Math.random() * 8);
switch (i) {
case 0:

@ -54,7 +54,6 @@ public class Map {
for(i = 0; i < this.map.size(); i++){
if(c == this.map.get(i)){
j=i+1;
System.out.println("i : "+i+" j : "+j);
try {
return this.map.get(j);
}catch (IndexOutOfBoundsException e){
@ -92,6 +91,7 @@ public class Map {
}
return null;
}
}

@ -54,7 +54,6 @@ public class MapCreature {
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);
}
}

@ -0,0 +1,2 @@
10 1 20-01-22
11 1 20-01-22
Loading…
Cancel
Save