-Gerer plusieurs Trheads-
Bonjour a tous,
Comme un dessin vaut mille mots:
http://sdz-upload.s3.amazonaws.com/prod/upload/Sans%20titre467.jpg
(Je sais pas pk je n'ai pas reussi a inserer l'img,dsl)
------>Precision: les obstacles apparaissent 1 a 1,et se deplace de droite a gauche.
Voici la partie du code qui je pense est importante:
Classe Fenetre
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
| public class Jeu_Fenetre extends JFrame {
//
private Jeu_Panneau JPan1 =new Jeu_Panneau();
JPanel pan =new JPanel();
public Jeu_Fenetre(){
this.setTitle("TP-Calculette");
this.setSize(550, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pan.setLayout(new BorderLayout());//indique qu'il faut prendre compte le positionnemt des touches
getContentPane().add(pan);//ajout du JPanel pour le rendre visible
//Apparence
affichage01();
pan.add(JPan1);//fond et autres
//rendre visible
this.setVisible(true);
//
go01();
}
//---------------------------------------------Animation du joueur---------------------------------------------
//---------------------------------------------Action lors du clic---------------------------------------------
protected void affichage01(){
//cretaion du JPanel qui contiendra des boutons
JPanel pan_b=new JPanel();//b=bouton
pan.add(pan_b , BorderLayout.SOUTH);
//Creation des boutons
JButton bHaut=new JButton ("Haut");
JButton bBas=new JButton ("Bas");
//Ajout d'action au boutons
bHaut.addActionListener(new bH_Listener());
bBas.addActionListener(new bB_Listener());
//Ajout des boutonss dans le Panel
pan_b.setLayout(new GridLayout(1,0,5,2));//ds l'ordre (ligne,colonne,espacement de 5px(x;y)
pan_b.add(bHaut);
pan_b.add(bBas);
}
//Var
//"Thread"Variable qui permettra de lancer l'action
private Thread t1;//vers le haut
private Thread t2;//vers le bas
//Va ns permettre de savoir quel bouton est cliqué
boolean animated_bH;
boolean animated_bB;
//Va nous permettre de savoir la position du joueur
int x_j=JPan1.getPosX_j();
int y_j=JPan1.getPosY_j();
//
//---------Fct des animations-------
//Animation vers le haut
public void Jgo01(){
for(;;){
y_j--;
JPan1.setPosY_j(y_j);
JPan1.repaint();
if (Math.abs( y_j ) <=0){
JPan1.setPosY_j(0);
}try {
Thread.sleep(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//Animation vers le bas
public void Jgo02(){
for(;;){
y_j++;
JPan1.setPosY_j(y_j);
JPan1.repaint();
if (Math.abs( y_j ) >=0){
JPan1.setPosY_j(getHeight());
}try {
Thread.sleep(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class bH_Listener implements ActionListener{//(*)Ici les classes ineternes st decrites
public void actionPerformed(ActionEvent arg0) {
//
animated_bH=true;
animated_bB=false;
//
t1 = new Thread(new PlayAnimation());
t1.start();
t2.stop();
}
}
public class bB_Listener implements ActionListener{//(*)Ici les classes ineternes st decrites
public void actionPerformed(ActionEvent arg0) {
//
animated_bH=false;
animated_bB=true;
//
t2 = new Thread(new PlayAnimation1());
t2.start();
t1.stop();
}
}
//
class PlayAnimation implements Runnable{
public void run() {
Jgo01();
}
}
class PlayAnimation1 implements Runnable{
public void run() {
Jgo02();
}
}
//---------------------------------------------FIN Action lors du clic---------------------------------------------
//---------------------------------------------Animation des obstacles ---------------------------------------------
public void go01(){
int i;
for(i=0;;i++){
//
int x = JPan1.getPosX(), y = JPan1.getPosY();
int xl =JPan1.getPosXl(),yl=JPan1.getPosYl();
//
x--;
JPan1.setPosX(x);
JPan1.setPosY(y);
JPan1.repaint();
if(Math.abs( x ) <=0){
JPan1.setPosX(1000);
JPan1.setPosY(200);
//
JPan1.setPosYl(900);
}try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
i=0;
}
}
//---------------------------------------------FIN Animation des Obstacles--------------------------------------------- |
Mon probleme:
Je n'arrive pas a gerer le deplacement du joueur.
Merci de votre aide.