Tremblement d'un clip et reposition

vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022 - 1 déc. 2009 à 10:47
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 - 4 déc. 2009 à 17:28
Salut, voilà, je veux refaire un jeu de tir et pour ça j'aimerais incorporer le fait que la réticule tremble un peu (ça c'est fait) et que lorsqu'on appuie sur "space", ça ne bouge plus, genre on retient ça respiration (ça aussi ça marche, mais)... mais donc, , j'arrive à assigner un x et un y pour que ça stoppe, mais ça ne marche pas si je veux que la réticule se stope "Là" où elle est... hm... je m'explique :

-> Ca ça marche :
onClipEvent (enterFrame) {



this._x = this._x+Math.floor(Math.random()*120)/60;

this._y = this._y+Math.floor(Math.random()*60)/120;



if (Key.isDown(Key.SPACE)) {

this._x = 300; //seul truc de changé...

this._y = 300; //seul truc de changé...

} else {

this._x = this._x+Math.floor(Math.random()*120)/60;

this._y = this._y+Math.floor(Math.random()*60)/120;

}



}

-> Et ça, nan (et c ce genre là qui'l faudrait en fait...)
onClipEvent (enterFrame) {



this._x = this._x+Math.floor(Math.random()*120)/60;

this._y = this._y+Math.floor(Math.random()*60)/120;



if (Key.isDown(Key.SPACE)) {

this._x = this._x;

this._y = this._y;

} else {

this._x = this._x+Math.floor(Math.random()*120)/60;

this._y = this._y+Math.floor(Math.random()*60)/120;

}



}

j'ai gaffé où svp???

Merci pour votre "éclairage"

6 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
1 déc. 2009 à 11:57
Bonjour,

Tu as oublié de mémoriser la position de départ de ton clip, du coup, il part en cacahuète n'importe où.

Il faut par exemple utiliser un point (flash 8 minimum) :

var dep:Point = new Point(monclip.x, monClip.y);


ensuite déclencher le tremblement avec :

monClip.x = dep.x + (math.random()*120-60);
monClip.y = dep.y + (math.random()*120-60);


Et pour réinitialiser après le tremblement :

monclip.x = dep.x;
monclip.y = dep.y;


Voili ... après c'est de tête mais ça devrait fonctionner (attention, je te l'ai mis en as3 par habitude)

Peg'
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
1 déc. 2009 à 23:16
Ok d'ac, je zieute ça tout de suite. Merci pour l'info, j'espère que ça va marcher
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
4 déc. 2009 à 14:49
dsl mais j'arrive pas à le "restranscrire" (je c c nul), je suis en aS2 sous flash8... arg
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
4 déc. 2009 à 15:34
mise à part les propriétés X et y, il n'y a rien à retranscrire ...

Peg'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
4 déc. 2009 à 17:19
... ça marche pas... voilà le code qui est sur mon clip qui sert de réticule :

onClipEvent (enterFrame) {



var dep:Point = new Point(this._x, this._y);



this._x = dep._x+Math.floor(Math.random()*120)/60;

this._y = dep._y+Math.floor(Math.random()*60)/120;



if (Key.isDown(Key.SPACE)) {

this._x = dep._x;

this._y = dep._y;

}

else {

this._x = dep._x+Math.floor(Math.random()*120)/60;

this._y = dep._y+Math.floor(Math.random()*60)/120;

}

}

et j'ai ça :
**Error** Scene=Scene 1, layer=Layer 1, frame=4:Line 3: The class or interface 'Point' could not be loaded.

var dep:Point = new Point(this._x, this._y);



Total ActionScript Errors: 1 Reported Errors: 1
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
4 déc. 2009 à 17:28
tu as bien mis as2 dans ton code ? et tu es bien en Flash 8 ?
De plus, le "enterframe" est inutile tant que tu ne touches pas à la barre d'espace ... c'est inutile de repositionner ton clip toutes les frames au même endroit ...

Peg'
0
Rejoignez-nous