Bonjour

Je demande votre aide car la je ss vraiment,totalement bloqué!

Donc voila l'animation que j'essaye de realiser:
Nom : Sans titre.png
Affichages : 106
Taille : 18,4 Ko

Mais je ni arrive pas(ca ne marche pas).

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
// -------Tirage-----
Random random1 = new Random();
int obscMin = 1, obscMax = 4;// obsc=obstacle//J'effectu un tirage pour savoir combien d'obsacle seront cree//tirage={0;1;2;3}
int nbreObsc = obscMin + random1.nextInt(obscMax - obscMin);// nbreObsc=nbre d'obstacle
// ---Fin:Tirage-----
// Soit modele du tableau:
// Un couple :An={(Xn;Yn)}
// Tableau1[An][(Xn;Yn)]={{X1;Y1}{X2;Y2}...{Xz;Yz}};
float tPosObsc[][] = new float[nbreObsc][2];// new tbl qui contiendra// les coordonnees(x;y)des differents obsc//t=tableau
public float[][] obscCoordone(){
    // -------Tirage-----
    Random random1 = new Random();
    int obscMin = 1, obscMax = 4;// obsc=obstacle//J'effectu un tirage pour savoir combien d'obsacle seront cree//tirage={0;1;2;3}
    int nbreObsc = obscMin + random1.nextInt(obscMax - obscMin);// nbreObsc=nbre d'obstacle
    // ---Fin:Tirage-----
    // Soit modele du tableau:
    // Un couple :An={(Xn;Yn)}
    // Tableau1[An][(Xn;Yn)]={{X1;Y1}{X2;Y2}...{Xz;Yz}};
    float tPosObsc[][] = new float[nbreObsc][2];// new tbl qui contiendra// les coordonnees(x;y)des differents obsc//t=tableau
    return tPosObsc;
}
 
 
// ----------------Getter et Setter Deplacemt des obsc-------------------------
public float getPosObsc(int x, int y) {
    return tPosObsc[x][y];
}
 
public void setPosObsc(int x, int y, float val) {
    this.tPosObsc[x][y] = val;
}
 
// ------------FIN:Getter et Setter Deplacemt des obsc--------------------------
 
protected boolean detruireObsc = false;//definira qd les obstacles seront detruit
 
// ------------Algo:Defini le deplacemt du obstacle----------
protected void obscDeplacemt(){//obsc=obstacle      
    for(int k=0;detruireObsc=false;k++){
    for(int i = 1; i <= tPosObsc.length ; i++){
        for(int j=0;j<=tPosObsc[i].length;j++){
            if(tPosObsc[i][1]==height){//Condition d'arret de l'obstacle
       detruireObsc=true;
       break;
            }else{ 
            float obscY=0;
            obscY++;
            tPosObsc[i][1]=obscY;
            }
        }
        }
}
}
// --------FIN:Algo:Defini le deplacemt du obstacle----------
//-----------------------------------------Gestion des Thread----------------------------------------------------------------------------------------
 
	private class MyTask extends AsyncTask<Object, Object, Object> {
 
 
		protected void onDraw(Canvas canvas) {// c=canvas
			//---Tirage pour determiner les coordonnées-------  
        	for(int i=1;i<=nbreObsc;i++){//abscisses    	
        	float ordMin=0,ordMax=width;
        	float absObsc = ordMin + (float)Math.random() * (ordMax - ordMin);//absObsc=abscisse d'obstacle
        	tPosObsc[i][0] = absObsc;
        	}
        	for(int i=1;i<=nbreObsc;i++){//ordonnees
        	float ordMin=-250,ordMax=-31;
            float ordObsc = ordMin + (float)Math.random() * (ordMax - ordMin);//ordObsc=ordonnee d'obstacle
            tPosObsc [i][1]=ordObsc;	
        	}
        	//---FIN:Tirage pour determiner les cordonnées---
        	for(int i=1;i<=tPosObsc.length;i++){
        		float absObsc= tPosObsc[i][0],ordObsc=tPosObsc[i][1];
        		pPrincipal.setColor(Color.parseColor("#ff0000"));//obstacle
        		canvas.drawCircle(absObsc, ordObsc,30, pPrincipal);
        	}
		}
 
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			Toast.makeText(Activity01Jeux.this, "Début du traitement asynchrone", Toast.LENGTH_SHORT).show();
		}
 
		protected void onProgressUpdate(Integer... values){
			super.onProgressUpdate(values);
			obscCoordone();
			onDraw(null);
			obscDeplacemt();	
		}
 
		protected void onPostExecute(Void result) {
			Toast.makeText(getApplicationContext(), "Le traitement asynchrone est terminé", Toast.LENGTH_LONG).show();
		}
 
		@Override
		protected Object doInBackground(Object... params) {
			// TODO Auto-generated method stub
			int progress;
			for (progress=0;progress<=100;progress++){
				for (int i=0; i<1000000; i++){}
				//la méthode publishProgress met à jour l'interface en invoquant la méthode onProgressUpdate
				publishProgress(progress);
				progress++;				
			}	
			return null;
		}
 
 
	}
 
//-------------------------------------FIN:Gestion des Thread----------------------------------------------------------------------------------------
J'espere que quelqu’un pourra m'aider.Si vs avez besoin de plus d'information surtout n’hésitez pas a demander.

Merci d'avence et tchao.