Rechercher : dans
Par :

[Java] déplacements KeyListener

Dernière réponse le 11 nov 2009 à 21:51:42 Hokusaï, le 11 nov 2009 à 17:44:50 
 Signaler ce message aux modérateurs

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?

Configuration: Windows Vista
Firefox 3.5.5

Meilleures réponses pour « [Java] déplacements KeyListener » dans :
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
[Logiciel libre] Installation firefox 2.0+java+flash VoirInstallation firefox 2.0+java+flash en ligne de commande A. INTRODUCTION B. INSTALLATION FIREFOX 1. Création d'environnement 2. Téléchargement et vérification de la signature 3. Installation de Firefox 4. Démarrage de l'application C....
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...

1

Hokusaï, le 11 nov 2009 à 18:18:08

Personne n'a d'idées concernant mon petit problème?

Répondre à Hokusaï

2

Hokusaï, le 11 nov 2009 à 19:00:44

A L'aide!!!

Répondre à Hokusaï

3

Hokusaï, le 11 nov 2009 à 21:48:28

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-dete­cter-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);
}
}

Répondre à Hokusaï

4

 Hokusaï, le 11 nov 2009 à 21:51:42

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);
}
}

Répondre à Hokusaï