mirror of
https://forge.univ-lyon1.fr/tplifap4/gyromite_ya.git
synced 2024-02-27 13:31:49 +01:00
Stockage de la map dans des fichier + interface lecture
This commit is contained in:
parent
3b0f7c912f
commit
e85c7bb0ab
10
Map/test.gyro
Normal file
10
Map/test.gyro
Normal file
@ -0,0 +1,10 @@
|
||||
mmmmmmmmmmmmmmmmmmmm
|
||||
m c c m
|
||||
m cmmmmc m
|
||||
m c c m
|
||||
mcc m
|
||||
mcc h m
|
||||
mcmmm m
|
||||
mc m
|
||||
mc i m
|
||||
mmmmmmmmmmmmmmmmmmmm
|
68
src/modele/calculs/IO/LecteurFichier.java
Normal file
68
src/modele/calculs/IO/LecteurFichier.java
Normal file
@ -0,0 +1,68 @@
|
||||
package modele.calculs.IO;
|
||||
|
||||
import modele.calculs.Controle4Directions;
|
||||
import modele.calculs.Gravite;
|
||||
import modele.calculs.Items;
|
||||
import modele.calculs.Jeu;
|
||||
import modele.donnees.*;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class LecteurFichier {
|
||||
public static HashMap<ObjetGyromide, Point> loadMap(String path, Jeu _jeu) {
|
||||
int x = 0, y = 0;
|
||||
HashMap<ObjetGyromide, Point> map = new HashMap<>();
|
||||
|
||||
Items r_i = new Items();
|
||||
Gravite r_g = new Gravite();
|
||||
modele.calculs.IA r_ia = new modele.calculs.IA();
|
||||
Controle4Directions r_c = Controle4Directions.getInstance();
|
||||
|
||||
try {
|
||||
File fileMap = new File(path);
|
||||
FileReader fr = new FileReader(fileMap);
|
||||
BufferedReader br = new BufferedReader(fr);
|
||||
int ch;
|
||||
while ((ch = br.read()) != -1) {
|
||||
switch((char) ch) {
|
||||
case 'm':
|
||||
_jeu.addEntite(new Mur(_jeu), x, y);
|
||||
break;
|
||||
case 'h':
|
||||
Heros h = new Heros(_jeu);
|
||||
r_c.addEntiteDynamique(h);
|
||||
r_g.addEntiteDynamique(h);
|
||||
_jeu.addEntite(h, x, y);
|
||||
break;
|
||||
case 'i':
|
||||
IA ia = new IA(_jeu);
|
||||
r_ia.addEntiteDynamique(ia);
|
||||
_jeu.addEntite(ia, x, y);
|
||||
break;
|
||||
case 'c':
|
||||
_jeu.addEntite(new Corde(_jeu), x, y);
|
||||
break;
|
||||
case '\n':
|
||||
y++;
|
||||
x = -1;
|
||||
break;
|
||||
}
|
||||
x ++;
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
_jeu.getOrdonnanceur().add(r_g);
|
||||
_jeu.getOrdonnanceur().add(r_c);
|
||||
_jeu.getOrdonnanceur().add(r_ia);
|
||||
_jeu.getOrdonnanceur().add(r_i);
|
||||
|
||||
return map;
|
||||
}
|
||||
}
|
@ -8,6 +8,7 @@ package modele.calculs;
|
||||
import modele.calculs.Controle4Directions;
|
||||
import modele.calculs.Direction;
|
||||
import modele.calculs.Gravite;
|
||||
import modele.calculs.IO.LecteurFichier;
|
||||
import modele.calculs.Ordonnanceur;
|
||||
import modele.donnees.*;
|
||||
|
||||
@ -56,33 +57,11 @@ public class Jeu {
|
||||
}
|
||||
|
||||
private void initialisationDesEntites() {
|
||||
hector = new Heros(this);
|
||||
addEntite(hector, 2, 1);
|
||||
|
||||
Gravite g = new Gravite();
|
||||
g.addEntiteDynamique(hector);
|
||||
ordonnanceur.add(g);
|
||||
|
||||
Controle4Directions.getInstance().addEntiteDynamique(hector);
|
||||
ordonnanceur.add(Controle4Directions.getInstance());
|
||||
|
||||
// murs extérieurs horizontaux
|
||||
for (int x = 0; x < 20; x++) {
|
||||
addEntite(new Mur(this), x, 0);
|
||||
addEntite(new Mur(this), x, 9);
|
||||
LecteurFichier.loadMap("Map/test.gyro", this);
|
||||
System.out.println("Map loaded");
|
||||
}
|
||||
|
||||
// murs extérieurs verticaux
|
||||
for (int y = 1; y < 9; y++) {
|
||||
addEntite(new Mur(this), 0, y);
|
||||
addEntite(new Mur(this), 19, y);
|
||||
}
|
||||
|
||||
addEntite(new Mur(this), 2, 6);
|
||||
addEntite(new Mur(this), 3, 6);
|
||||
}
|
||||
|
||||
private void addEntite(ObjetGyromide e, int x, int y) {
|
||||
public void addEntite(ObjetGyromide e, int x, int y) {
|
||||
if(e instanceof ElementFond)
|
||||
grilleEntites[x][y][1] = e;
|
||||
else if (e instanceof ElementPhysique)
|
||||
|
Loading…
Reference in New Issue
Block a user