Bonjour !

je cherche a programmer une animation simulant une course de voitures (pour pouvoir l'utiliser en strategie de course durant une vraie course).
je cherche donc a faire tourner mes 4 voitures, blue, green, purple et brown a des vitesses differentes, dependant de leur chrono reel au tour : mission accomplie.

mais je cherche aussi a les faire rester derriere la Safety Car quand celle ci sort (puisqu'interdiction de doubler durant une SC)
j'ai donc fait un truc bien bourrin (car je ne savais pas faire autrement ) ou j'ai plusieurs boucles if imbriquees, genre si la voiture blue touche la SC alors, ... et si la voiture verte touche la voiture bleue qui touche deja la SC alors, ...

mais le probleme c'est que ca ne marche pas et ca marche pas de facon bizarre...
Si la bleue touche la SC en 1ere, pas de probleme, mais par exemple qd la verte touche la blue deja derriere la SC, la vitesse de la verte ne change pas, alors que flash effectue bien la boucle if concernee car un trace place dans cette boucle est effectue...

enfin voila, je ne sais pas si je suis tres claire... j'espere qd meme !

voici donc mon code si quelqu'un a une solution, je suis preneuse


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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
var tb:Number = 0;
var tg:Number = 0;
var tp:Number = 0;
var tbr:Number = 0;
var tSC:Number = 0;
var bluerotation:Number = 0;
var greenrotation:Number = 0;
var brownrotation:Number = 0;
var purplerotation:Number = 0;
var SafetyCar:Boolean = false;
var BlueHitSC:Boolean = false;
var GreenHitSC:Boolean = false;
var PurpleHitSC:Boolean = false;
var BrownHitSC:Boolean = false;
//
onEnterFrame = function () {
	    if (tbs.text!="", tbm.text!="", tbms.text!="") {
		tb = parseFloat(tbs.text)+(parseFloat(tbm.text))*60+(parseFloat(tbms.text))/1000;
	}
	if (tgs.text!="", tgm.text!="", tgms.text!="") {
		tg = parseFloat(tgs.text)+(parseFloat(tgm.text))*60+(parseFloat(tgms.text))/1000;
	}
	if (tbrs.text!="", tbrm.text!="", tbrms.text!="") {
		tbr = parseFloat(tbrs.text)+(parseFloat(tbrm.text))*60+(parseFloat(tbrms.text))/1000;
	}
	if (tps.text!="", tpm.text!="", tpms.text!="") {
		tp = parseFloat(tps.text)+(parseFloat(tpm.text))*60+(parseFloat(tpms.text))/1000;
	}
	bluerotation = 360/tb;
	greenrotation = 360/tg;
	brownrotation = 360/tbr;
	purplerotation = 360/tp;
             SCrotation = 360/tSC;
	if (SafetyCar == false) {
		blue._rotation += bluerotation;
		green._rotation += greenrotation;
		purple._rotation += purplerotation;
		brown._rotation += brownrotation;
	}
	if (tSCs.text!="", tSCm.text!="", tSCms.text!="") {
		tSC = parseFloat(tSCs.text)+(parseFloat(tSCm.text))*60+(parseFloat(tSCms.text))/1000;
		safety._rotation += SCrotation;
	}
	if (SafetyCar == true) {
		if (GreenHitSC == false and PurpleHitSC == false and BrownHitSC == false) {
			if (safety.hitTest(blue)) { //boucle effectuee correctement
				BlueHitSC = true;
				blue._rotation += SCrotation;
				green._rotation += greenrotation;
				purple._rotation += purplerotation;
				brown._rotation += brownrotation;
				if (blue.hitTest(green)) { //boucle effectuee bizarrement car boucle effectuee mais changement de vitesse non effectif...
					green._rotation += SCrotation;
					purple._rotation += purplerotation;
					brown._rotation += brownrotation;					                        if (green.hitTest(purple)) {
						purple._rotation += SCrotation;
						brown._rotation += brownrotation;
						if (purple.hitTest(brown)) {
							brown._rotation += SCrotation;
						}
					}
					if (green.hitTest(brown)) {
						brown._rotation += SCrotation;
						purple._rotation += purplerotation;
						if (brown.hitTest(purple)) {
							purple._rotation += SCrotation;
						}
					}
				}
				if (blue.hitTest(purple)) {
					purple._rotation += SCrotation;
					green._rotation += greenrotation;
					brown._rotation += brownrotation;
					if (purple.hitTest(green)) {
						green._rotation += SCrotation;
						brown._rotation += brownrotation;
						if (green.hitTest(brown)) {
							brown._rotation += SCrotation;
						}
					}
					if (purple.hitTest(brown)) {
						brown._rotation += SCrotation;
						green._rotation += greenrotation;
						if (brown.hitTest(green)) {
							green._rotation += SCrotation;
						}
					}
				}
				if (blue.hitTest(brown)) {
					brown._rotation += SCrotation;
					green._rotation += greenrotation;
					purple._rotation += purplerotation;
					if (brown.hitTest(purple)) {
						purple._rotation += SCrotation;
						green._rotation += greenrotation;
						if (purple.hitTest(green)) {
							green._rotation += SCrotation;
						}
					}
					if (brown.hitTest(green)) {
						green._rotation += SCrotation;
						purple._rotation += purplerotation;
						if (green.hitTest(purple)) {
							purple._rotation += SCrotation;
						}
					}
				}
			} else {
				blue._rotation += bluerotation;
			}
		}
		if (BlueHitSC == false and PurpleHitSC == false and BrownHitSC == false) {
			if (safety.hitTest(green)) {
				GreenHitSC = true;
				green._rotation += SCrotation;
			} else {
				green._rotation += greenrotation;
			}
		}
		if (GreenHitSC == false and BlueHitSC == false and BrownHitSC == false) {
			if (safety.hitTest(purple)) {
				PurpleHitSC = true;
				purple._rotation += SCrotation;
			} else {
				purple._rotation += purplerotation;
			}
		}
		if (GreenHitSC == false and PurpleHitSC == false and BlueHitSC == false) {
			if (safety.hitTest(brown)) {
				BrownHitSC = true;
				brown._rotation += SCrotation;
			} else {
				brown._rotation += brownrotation;
			}
		}
	}
};

je precise que je n'ai prevue que les cas pour lesquels blue touche la SC en 1ere, si ca ca marche, le reste sera facile a faire apres normalement.

Merci bcp d'avance pour vos reponses !!!

P.S.: excusez moi pour les accents, je suis en GB actuellement et les claviers qwerty connaissent pas les accents...