Bonjour,
J'ouvre ce sujet car j'ai un problème que je n'arrive pas à résoudre malgré mes recherches.
J'ai pour l'instant un mini-jeu (pas fini) qui se présente sous la façon suivante :
1 - Une fenêtre se lance permettant de changer les options, commencer un nouveau jeu ou charger une sauvegarde
2 - Après la création du jeu ou le chargement de la sauvegarde, cette première fenêtre se ferme et une autre s'ouvre (le jeu commence).
Après de multiples recherches sur Internet, j'ai réussi à créer un fichier .jar exécutable, mais les différentes façons ont tous le même problème : la 2nd fenêtre ne s'affiche pas.
La seul différence entre les 2 fenêtres est que sur la seconde, il y a des images.
Je me suis donc demandé si se n'était pas le chargement des images qui faisait buggé ce .jar. Voici un exemple de comment je charge mes images si ça peut vous interraissé (les images ne sont pas dans le dossier src mais dans un autre dossier) :
Ce code permet de mettre dans un tableau toutes les images dans le dossier media/cells (tous les fichiers sont nommés de la forme un caractère.png (g.png pour l'herbe)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 File folder = new File("media/cells"); for(File img : folder.listFiles()){ try{ images[(int)img.getName().charAt(0)] = ImageIO.read(img); }catch(IOException e){ e.printStackTrace(); //System.exit(1); } }
Je me suis aussi demandé si cela ne provenait pas de la lecture de la map, puisque pour chargé la map, je lis un fichier .txt où chaque caractère est une image (d'où le nom g.png). Voici comment je lis le fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 String filename = "map/main.txt"; String line; int i = 0; try{ BufferedReader file = new BufferedReader(new FileReader(filename)); while((line = file.readLine()) != null){ cells.add(new ArrayList<Cell>()); cellsadd.add(new ArrayList<CellAdd>()); for(int ii = 0; ii < line.length(); ii++){ cells.get(i).add(new Cell(line.charAt(ii))); cellsadd.get(i).add(new CellAdd(ii, i)); } i++; } file.close(); }catch(IOException e){ e.printStackTrace(); //System.exit(1); }
Tout ce code fonctionne quand je compile sous eclipse mais il ne fonctionne pas quand je lance mon .jar
Merci d'avance !
Partager