Bonjour ;)
Je débute en java et souhaiterai écrire mon tout premier jeu, le probleme c'eest pour deplacer mon personnage, ca ne marche pas !
Voici mon code :
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JPanel;
public class MaZone extends JPanel implements KeyListener,MouseListener,Runnable {
private Personnage1 perso1 = new Personnage1(10,10,"datas/images/harry.gif");
public MaZone() {
setBackground(Color.BLACK);
addKeyListener(this);
addMouseListener(this);
}
public void run() {
// rien !
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
this.perso1.setCoord(e.getX(), e.getY());
repaint();
}
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyCode() == KeyEvent.VK_LEFT)
this.perso1.moveLeft();
else if(e.getKeyCode() == KeyEvent.VK_RIGHT)
this.perso1.moveRight();
else if(e.getKeyCode() == KeyEvent.VK_UP)
this.perso1.moveTop();
else if(e.getKeyCode() == KeyEvent.VK_DOWN)
this.perso1.moveBottom();
repaint();
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
this.perso1.paint(g)
; }
}
La classe personnage est une classe toute simple qui dessine le personnage et possede les methodes pour le déplacer :
public class Personnage1 extends BasePerso{
public Personnage1(int x,int y,String imageFilename) {
super(x,y,imageFilename);
}
}
et basePerso :
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class BasePerso extends JLabel{
private int x; // abscisse du personnage
private int y; // ordonnée du personnage
private Image image; // personnage (image)
private final int VITESSE = 10;
public BasePerso(int x,int y,String imageFilename) {
this.x = x;
this.y = y;
ImageIcon img = new ImageIcon(imageFilename);
this.image = img.getImage();
}
public void moveLeft() {
this.x -= this.VITESSE;
}
public void moveRight() {
this.x += this.VITESSE;
}
public void moveTop() {
this.y -= this.VITESSE;
}
public void moveBottom() {
this.x += this.VITESSE;
}
public void setCoord(int x,int y) {
this.x = x;
this.y = y;
}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(this.image, this.x, this.y, null);
}
}
J'ai mis un mouseListener en attendant, histoire de me faire à la méthode repaint() et tout le tutim mais je ne comprend pas pourquoi le keyListener n'est pas interprété T_T
Sauriez vous me dire pourquoi ?
Merchi !