Bonjour à tous,
Je vais probablement me faire taper sur les doigts, mais voici mon problème:
Tout d'abord, sachez que je suis débutante en action Script.
Je deplace une voiture grâce aux touches directionnelles, jusque là, pas de problème.
Lorsqu'elle rentre en collision avec un obstacle, flash ne semble tenir compte que du centre du clip voiture (comme dans le tuto sur les collisions),
ce qui me semble logique, étant donné que je la résume à un point pour déterminer sa position en fonction de sa vitesse.
J'ai lu dans certains topics qu'il "suffisait" de placer des point stratégiques sur la voiture, abritant chacun un hitTest, pour éviter ce problème.
Mais, curieusement, dans ce tutoriel, le rond rentre en collision sur toute sa surface, je me demandais donc, cela n'est -il pas faisable avec ma voiture?
Comment puis je faire pour que ma voiture ne se résume pas à un point?
Mon code: contenu dans la voiture:
Je ne sais pas si j'ai été très claire...
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 onClipEvent(load) { vitesse=0; x=0; y=0; } onClipEvent (enterFrame) // le code suivant est exécuté en boucle { if (Key.isDown(Key.UP)) vitesse += 1; //acceleration en avant if (Key.isDown(Key.DOWN)) vitesse -= 0.5; //acceleration en arrière if (Key.isDown(Key.LEFT)) _rotation -= 8; //_rotation affecte directement la voiture if (Key.isDown(Key.RIGHT)) _rotation += 8; if (Math.abs(vitesse)>1) vitesse *= 0.9; // limite l'acceleration x = Math.cos(_rotation*(Math.PI/180))*vitesse; // donne la position x future en fonction de la vitesse y = Math.sin(_rotation*(Math.PI/180))*vitesse; // donne la position y future en fonction de la vitesse if (_root.obstacle.hitTest(_x+x,_y+y,true)) // collision avec le rond vitesse *= -1; // reaction apres collision, rebond de la voiture else { _x += x; //_x est une coordonnée de la voiture _y += y; //_y est une coordonnée de la voiture } }
Merci d'avance
Partager