|
|
|
Bonsoir,
Moi et un camarade travaillons sur un jeu, utilisant des fichiers pour le scores effectués par les joueurs. A la fin d'une partie, le joueur rentre so nom dans une fenêtre qui s'ouvre, et le nom est récupéré pour rentrer dans l fichier, pareil pour son score. ci-dessous, nos différentes class : package Systeme; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SwingUtilities; import Jeu.Scene; import Objets.Comet; public class GameOver extends JFrame{ JTextArea texte; JButton Button; JLabel label; static String NouveauJoueur; public static int P = 0; public GameOver() { setLayout(new FlowLayout()); texte = new JTextArea(5, 25); add(texte); Button = new JButton("e;Enter"e;); add(Button); label = new JLabel("e;Enter your name"e;); add(label); event e = new event(); Button.addActionListener(e); } public class event implements ActionListener { public void actionPerformed(ActionEvent e) { NouveauJoueur = texte.getText(); P = 1; label.setText("e;Hello "e; + NouveauJoueur + "e;, nice to meet you. Such nice score !"e;); } } public static void main(String args[]) { GameOver fenetre3 = new GameOver(); fenetre3.setDefaultCloseOperation(JFrame.EXIT_ON_C LOSE); fenetre3.setSize(300, 200); fenetre3.setLocationRelativeTo(null); fenetre3.setResizable(false); fenetre3.setAlwaysOnTop(true); if (Scene.mort == 0){ fenetre3.setVisible(true); } } } ///////////////Autre class, celle s'occupant du fichier//////////////// int NJ = 0; int NS = 0; Compteur = 1; if(GameOver.P == 1 ) { if(Scene.NouveauScore >Integer.valueOf(Scoretrie [9][0])) { Scoretrie [9][0] = Integer.toString(Scene.NouveauScore); Scoretrie [9][1] = GameOver.NouveauJoueur; try{ PrintWriter ASortie = new PrintWriter("e;Score.txt"e;); for(k = 0; k<20; k++) { int reste = Compteur % 2; if(reste != 0){ ASortie.println(Scoretrie [NS][0]); NS = NS + 1; Compteur = Compteur + 1; } else { ASortie.println(Scoretrie [NJ][1]); NJ = NJ + 1; Compteur = Compteur + 1; } } ASortie.close(); } catch (IOException e){ println("e;Erreur Traitement fichier:"e;+ e ); } } else { try{ PrintWriter BSortie = new PrintWriter("e;Score.txt"e;); for(k = 0; k<20; k++) { int reste = Compteur % 2; if(reste != 0){ BSortie.println(Scoretrie [NS][0]); NS = NS + 1; Compteur = Compteur + 1; } else { BSortie.println(Scoretrie [NJ][1]); NJ = NJ + 1; Compteur = Compteur + 1; } } BSortie.close(); } catch (IOException e){ println("e;Erreur Traitement fichier:"e;+ e ); } } } } } ///////////Autre class, pour la création de la fenêtre/////////////// if(this.comet.isVivant() == false && O == 0) { removeAll(); GameOver fenetre3 = new GameOver(); fenetre3.setDefaultCloseOperation(JFrame.EXIT_ON_C LOSE); fenetre3.setSize(300, 200); fenetre3.setLocationRelativeTo(null); fenetre3.setResizable(false); fenetre3.setAlwaysOnTop(true); fenetre3.setVisible(true); O = 1; } if(this.comet.isVivant() == false ) { g2.drawImage(this.imgFin, 0, 0, null); NouveauScore = score; } Malheureusement, le nom et le nouveau score ne s'enregistre pas dans le fichier et on ne comprends pas pourquoi, alors que si l'on fait marcher la partie qu s'occupe du score tout seul et qu'on entre dedans le nouveau nom et le nouvea score, tout marche correctement. |
|
|
|
Le 15/05/2020 à 00:06, BKCelia a écrit :
[..] > et on ne comprends pas pourquoi, alors que si l'on fait marcher la partie qui > s'occupe du score tout seul et qu'on entre dedans le nouveau nom et le nouveau > score, tout marche correctement. Je ne vois pas d'appel à la fonction qui écrit le fichier des scores lorsqu'on clique sur le bouton, ou sur un quelconque autre événement. |
|
Fuseau horaire GMT +2. Il est actuellement 08h43. | Privacy Policy
|