Bonjour, je débute sous flash et j ai bien des misères à comprendre le
systeme de parentage et d appel des hierarchies dans le code.
Alors voici un code qui est censé deplacer une ellipse entourée de 4 petits points.
Celle ci devrait se ballader comme une voiture et entrer en collision avec le decord nommé ici "rond"
Je me suis évidemment inspiré de 2 tutoriaux que j ai pu trouver sur le
net, mais je ne comprends plus pourquoi le code ne fonctionne pas, peut
etre quelqu un peut il m aider.
Les 4 points entourant l ellipse sont desactivés sauf le premier, sur
lequel je detecte la collision, c'est un clip qui se trouve à
l'interieur du clip voiture et le clip voiture possede le script.
j espere ne pas etre trop confus, merci encore de m aider.
Kinan
voici le code :
onClipEvent(load)
{
vitesse=0;
xvoiture=0;
yvoiture=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.2; //acceleration en arrière
if (Key.isDown(Key.LEFT)) _rotation -= 8; //_rotation affecte directement le truc rouge
if (Key.isDown(Key.RIGHT)) _rotation += 8;
if (Math.abs(vitesse)>1) vitesse *= 0.9; // limite l'acceleration
xvoiture = Math.cos(_rotation*(Math.PI/180))*vitesse; // donne la position x future en fonction de la vitesse
yvoiture = Math.sin(_rotation *(Math.PI/180))*vitesse; // donne la position y future en fonction de la vitesse
var un_point:Object = new Object();
un_point.x = this.point_1._x;
un_point.y = this.point_1._y;
this.localToGlobal(un_point); // transfert des coordonnées du local point_1 en global
if (_root.rond.hitTest(un_point.x,un_point.y,true)) {
//if
(_root.rond.hitTest(_x+xvoiture,_y+yvoiture,true)) { //
collision desactivée avec le centre de l ellipse, si j active cette
ligne ca marche
vitesse *= -1 ; // reaction apres collision, rebond de la voiture
}
else {
_x += xvoiture; //_x est une coordonnée de l ellipse
_y += yvoiture; //_y est une coordonnée de l ellipse
}
}