Comment utiliser un Thread SVP !!!

Résolu/Fermé
Pulsar360 Messages postés 114 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 29 août 2018 - 28 mars 2013 à 23:42
Pulsar360 Messages postés 114 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 29 août 2018 - 29 mars 2013 à 16:42
Bonjour,

J'essaye de coder un petit jeu de Ping Pong à deux joueur sur le même clavier, sauf que je n'arrive pas à faire en sorte que les deux joueurs puisse déplacer leur barre en même temps.
Apparemment il serais bon d'utiliser un thread, mais je ne c'est pas comment l'utiliser, j'ai beau avoir lu beaucoup de tuto dessus je n'arrive quand même pas à le mettre en place dans mon code.

Si quelqu'un pouvais m'aider sur se coup là, ça serait super sympas de votre part car je suis dessus depuis trop longtemps là, je pense quand le voyant utiliser dans mon code je comprendrais mieux.

Voici mon code:

import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;

public class Fenetre extends JFrame {
	Table tab = new Table();
	public Fenetre() {
	this.setTitle("Salut");
	this.setSize(859, 568);
	this.setLocationRelativeTo(null);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	this.setVisible(true);
	this.addKeyListener(new ClavierListener());
	this.setContentPane(tab);
	this.setBackground(new Color(200,200,200));
	}
	
	class ClavierListener implements KeyListener{
	private boolean touchea = false;
	private boolean toucheq = false;
	private boolean touchep = false;
	private boolean touchem = false;

	public void keyTyped(KeyEvent e) {
	
	if(touchea == true) {
	tab.setPosYHRG(tab.getPosYHRG()-10); }
	if(toucheq == true) {
	tab.setPosYHRG(tab.getPosYHRG()+10); }
	if(touchep == true) {
	tab.setPosYHRD(tab.getPosYHRD()-10); }
	if(touchem == true) {
	tab.setPosYHRD(tab.getPosYHRD()+10); }
	tab.repaint();
	
		try { Thread.sleep(1); }
		catch (InterruptedException ie) { ie.printStackTrace(); }
	}

	public void keyPressed(KeyEvent e) {
	
	if (e.getKeyChar()=='a') {
	touchea = true; }
	else if (e.getKeyChar() == 'q') {
	toucheq = true; }
	else if (e.getKeyChar()=='p') {
	touchep = true; }
	else if (e.getKeyChar() == 'm') {
	touchem = true; }
	}
	
	public void keyReleased(KeyEvent e) {

	if (e.getKeyChar()=='a') {
	touchea = false; }
	else if (e.getKeyChar() == 'q') {
	toucheq = false; }
	else if (e.getKeyChar()=='p') {
	touchep = false; }
	else if (e.getKeyChar() == 'm') {
	touchem = false; }
	}
	}
}
A voir également:

1 réponse

Flog78 Messages postés 16 Date d'inscription mercredi 28 novembre 2012 Statut Membre Dernière intervention 17 mai 2013 4
29 mars 2013 à 15:56
Ce qu'il y a savoir sur les thread :
- La classe doit étendre de "Thread"
- Le démarrage du thread doit etre démarré avec la méthode "start()" ce qui appelle la méthode "run()"

Voici un exemple d'utilisation :
public class Test5 extends Thread
{
	public static void main(String[] args)
	{
		Test5  t = new Test5("Toto");
		t.start();
		
		Test5  t2 = new Test5("Tata");
		t2.start();
	}
	
	private String name;
	
	public Test5(String name)
	{
		this.name = name;
	}
	
	public void run()
	{
		for(int i=0;i<10;i++)
		{
			System.out.println(name);
			try
			{
				Thread.sleep(500);
			}
			catch (InterruptedException e){}
		}
	}
	
}
0
Pulsar360 Messages postés 114 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 29 août 2018 10
29 mars 2013 à 16:42
Bonjour,

Merci pour ton coup de main, c'est très clair, c'est parfait, exactement le genre d'exemple que je chercher pour mieux comprendre.

J'ai un peu travailler dessus là et je pense que j'ai compris, en tous cas je vais m'en inspirer pour mon projet.

Je te remercie =).
0