Comment utiliser un Thread SVP !!!

Résolu
Pulsar360 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -  
Pulsar360 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   4
 
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 113 Date d'inscription   Statut Membre Dernière intervention   10
 
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