[FLASH 8] Gestion des collisions
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.:oops:
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:
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
|
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
}
} |
Je ne sais pas si j'ai été très claire...:roll:
Merci d'avance:mrgreen: