Voilà un moment que je n'arrive pas à faire évoluer un score pour un jeu.
La situation est la suivante. Lorsque je déplace un élément (en l'occurrence un pion), je souhaite incrémenter de 1 la variable "Score" définie au départ, et placée dans le JtextField "sco". Or quelque soit la modification que j'essaye d'apporter (même simplement un Score++), la variable reste figée à 0... Comment puis je la faire changer, si possible lors d'un déplacement ?
package avat;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.BasicStroke;
import java.awt.Font;
import java.awt.Image;
import java.awt.Graphics2D;
import java.awt.GradientPaint;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.lang.Object;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Panneau extends JPanel {
private int i;
private int j;
private int xPos;
private int yPos;
private int Score=0;
private String pseudo;
private int numJoueur=0;
public Panneau(int x, int y){
xPos = x;
yPos = y;
this.setFocusable(true);
this.requestFocusInWindow();
}
@Override
public void paintComponent(Graphics g ) {
for (i = 0; i <= 8; i++) {
for (j = 0; j <= 8; j++) {
if (i==1 && j==1 || i==2 && j==1 || i==6 && j==1 || i==7 && j==1 ||
j==3 && i==3 || j==3 &&i==5 ||
j==4 && i==3 || j==4 &&i==5 ||
j==5 && i==3 || j==5 &&i==5 || j==5 && i==4 ||
i==1 && j==7 || i==2 && j==7 || i==6 && j==7 || i==7 && j==7){
g.setColor(Color.gray);
g.fillRect(80+40 * i,40+ 40 * j, 40, 40);
}
else{
g.setColor(Color.blue);
g.fillRect(80+40 * i,40+ 40 * j, 40, 40);
g.setColor(Color.black);
g.drawRect(80+40 * i,40+ 40 * j, 40, 40);
g.setColor(Color.black);
g.drawOval(95+40 * i,55+ 40 * j, 10, 10);
}
}
}
// on intègre le joueur vert:
Font font = new Font("Courier", Font.BOLD, 20);
g.setFont(font);
g.setColor(Color.black);
g.drawString(pseudo, 10, 20);
switch (numJoueur)
{ case 1:
g.setColor(Color.black);
g.drawString(pseudo, 10, 20);
g.setColor(Color.green);
g.fillOval(80+xPos*40, 40+yPos * 40, 40, 40);
break;
case 2: g.setColor(Color.red);
g.fillOval(80+xPos*40, 40+yPos * 40, 40, 40);
break;
case 3: g.setColor(Color.yellow);
g.fillOval(80+xPos*40, 40+yPos * 40, 40, 40);
break;
case 4: g.setColor(Color.black);
g.fillOval(80+xPos*40, 40+yPos * 40, 40, 40);
break;
}
}
public int getxPos() {
return xPos;
}
public void setxPos(int posX) {
this.xPos = posX;
}
public int getyPos() {
return yPos;
}
public void setyPos(int posY) {
this.yPos = posY;
}
public void setScore(int score) {
this.Score=score;
}
public void setPseudo(String Pseudo) {
this.pseudo=Pseudo;
}
public void setNumJoueur(int NumJoueur) {
this.numJoueur=NumJoueur;
}
public void keyTyped(KeyEvent arg0) {
}
public void keyReleased(KeyEvent arg0) {
}
}
Classe avat
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package avat;
/**
*
* @author Utilisateur
*/
import java.util.Scanner;
public class Avat {
/**
* @param args the command line arguments
*/
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int numJoueur= 0;
System.out.println("Bonjour. Entrez votre pseudo:");
String pseudo= sc.nextLine();
numJoueur++;
Fenetre fen = new Fenetre (pseudo,numJoueur);
}
}
if ((xPos != pan.getxPos()) || (yPos != pan.getyPos()) // c-à-d, si on a bougé
score++; // Avec un s minuscule car c'est une variable
sco.setText(""+score); // Il faut mettre ton JTextField à jour, ce qui manquait à ton code, je pense
Evolution d'un score
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.