[Java] déplacements KeyListener
Hokusaï
-
panc -
panc -
Bonjour,
J'essaie de programmer un petit jeu de "combat" en Java.
J'ai créer ma fenetre avec mon fond d'écran et j'y ai inserer mon personnage. Mais je n'arrive pas a le faire se déplacer de droite a gauche.
J'ai essayé de la faire se déplacer avec KeyListener mais je n'y arrive pas.
Voilà mes petits bouts de code:
MON PERSONNAGE:
public class Player extends JLabel
{
private Integer w,h,x,y;
public void refresh()
{
setBounds(this.x,this.y,this.w,this.h);
}
public void setTaille(Integer w,Integer h)
{
this.w = w;
this.h = h;
}
public void setPosition(Integer x,Integer y)
{
this.x = x;
this.y = y;
refresh();
}
public void movex(Integer x)
{
this.x += x;
refresh();
}
}
MON "PROTOTYPE DE CONTROLER:
public class Controller implements KeyListener
{
public void keyPressed (KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_Q) { /*player1.movex(-10);*/ }
if(e.getKeyCode()==KeyEvent.VK_D) { /*player1.movex(+10);*/ }
}
public void keyTyped (KeyEvent e)
{
}
public void keyReleased (KeyEvent e)
{
}
}
Voilà. JE suis vraiment bloqué, est ce que quelqu'un pourrait me donner une piste svp?
J'essaie de programmer un petit jeu de "combat" en Java.
J'ai créer ma fenetre avec mon fond d'écran et j'y ai inserer mon personnage. Mais je n'arrive pas a le faire se déplacer de droite a gauche.
J'ai essayé de la faire se déplacer avec KeyListener mais je n'y arrive pas.
Voilà mes petits bouts de code:
MON PERSONNAGE:
public class Player extends JLabel
{
private Integer w,h,x,y;
public void refresh()
{
setBounds(this.x,this.y,this.w,this.h);
}
public void setTaille(Integer w,Integer h)
{
this.w = w;
this.h = h;
}
public void setPosition(Integer x,Integer y)
{
this.x = x;
this.y = y;
refresh();
}
public void movex(Integer x)
{
this.x += x;
refresh();
}
}
MON "PROTOTYPE DE CONTROLER:
public class Controller implements KeyListener
{
public void keyPressed (KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_Q) { /*player1.movex(-10);*/ }
if(e.getKeyCode()==KeyEvent.VK_D) { /*player1.movex(+10);*/ }
}
public void keyTyped (KeyEvent e)
{
}
public void keyReleased (KeyEvent e)
{
}
}
Voilà. JE suis vraiment bloqué, est ce que quelqu'un pourrait me donner une piste svp?
A voir également:
- [Java] déplacements KeyListener
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
4 réponses
J'ai améliorer mon programme un petit peu. Mais ca ne fonctionne toujours pas.
Pas de problemes a la compilation mais les personnages ne bougent toujours pas.
Quelqu'un a une piste???
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
//pour les intersections
//voir http://www.infos-du-net.com/forum/192643-21-resolu-java-detecter-contact-jlabel
//faut dabord reussir a faire bouger liukang avec movex. Le probleme c'est le Keylistener j'arrive pas.
public class MainFrame extends JFrame
{
static JPanel panelbg;
static Player player1;
static Player player2;
public void setBackground(String src)
{
final Image image = new ImageIcon(src).getImage();
panelbg = new JPanel()
{
protected void paintComponent(Graphics g)
{
Dimension d = getSize(); //capture les dimensions de la fenetre
g.drawImage(image, 0, 0, d.width, d.height, null); //dessine l'image aux dimensions de la fenetre
super.paintComponent(g); //peint la fenetre avec ce qu'on a choisi
}
};
panelbg.setLayout(null);
panelbg.setOpaque(false);
getContentPane().add(panelbg);
}
public static void main(String [] args)
{
MainFrame frame = new MainFrame();
frame.setTitle("Kung-Fu Mast3r");
frame.setSize(800,600);
frame.setResizable(false);
frame.setBackground("sf2-blanka.gif");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
player1 = new Player();
player1.setIcon(new ImageIcon("liukang2.jpg") );
player1.setTaille(47,193);
player1.setPosition(200,325);
player2 = new Player();
player2.setIcon(new ImageIcon("liukang3.jpg"));
player2.setTaille(47,193);
player2.setPosition(553,325);
panelbg.add(player1);
panelbg.add(player2);
}
}
Pas de problemes a la compilation mais les personnages ne bougent toujours pas.
Quelqu'un a une piste???
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
//pour les intersections
//voir http://www.infos-du-net.com/forum/192643-21-resolu-java-detecter-contact-jlabel
//faut dabord reussir a faire bouger liukang avec movex. Le probleme c'est le Keylistener j'arrive pas.
public class MainFrame extends JFrame
{
static JPanel panelbg;
static Player player1;
static Player player2;
public void setBackground(String src)
{
final Image image = new ImageIcon(src).getImage();
panelbg = new JPanel()
{
protected void paintComponent(Graphics g)
{
Dimension d = getSize(); //capture les dimensions de la fenetre
g.drawImage(image, 0, 0, d.width, d.height, null); //dessine l'image aux dimensions de la fenetre
super.paintComponent(g); //peint la fenetre avec ce qu'on a choisi
}
};
panelbg.setLayout(null);
panelbg.setOpaque(false);
getContentPane().add(panelbg);
}
public static void main(String [] args)
{
MainFrame frame = new MainFrame();
frame.setTitle("Kung-Fu Mast3r");
frame.setSize(800,600);
frame.setResizable(false);
frame.setBackground("sf2-blanka.gif");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
player1 = new Player();
player1.setIcon(new ImageIcon("liukang2.jpg") );
player1.setTaille(47,193);
player1.setPosition(200,325);
player2 = new Player();
player2.setIcon(new ImageIcon("liukang3.jpg"));
player2.setTaille(47,193);
player2.setPosition(553,325);
panelbg.add(player1);
panelbg.add(player2);
}
}
et la class joueur
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Player extends JLabel implements KeyListener
{
private Integer x,y;
private Integer w,h;
public void refresh()
{
setBounds(this.x,this.y,this.w,this.h);
}
public void setTaille(Integer w,Integer h)
{
this.w = w;
this.h = h;
}
public void setPosition(Integer x,Integer y)
{
this.x = x;
this.y = y;
refresh();
}
public void movex(Integer x)
{
this.x += x;
refresh();
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_RIGHT) movex(50);
if(e.getKeyCode()==KeyEvent.VK_LEFT) movex(-50);
}
}
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Player extends JLabel implements KeyListener
{
private Integer x,y;
private Integer w,h;
public void refresh()
{
setBounds(this.x,this.y,this.w,this.h);
}
public void setTaille(Integer w,Integer h)
{
this.w = w;
this.h = h;
}
public void setPosition(Integer x,Integer y)
{
this.x = x;
this.y = y;
refresh();
}
public void movex(Integer x)
{
this.x += x;
refresh();
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_RIGHT) movex(50);
if(e.getKeyCode()==KeyEvent.VK_LEFT) movex(-50);
}
}