Taille et vitesse d'un clip aléatoires

Eastear Messages postés 15 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 7 juin 2007 - 29 mai 2007 à 02:15
Eastear Messages postés 15 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 7 juin 2007 - 30 mai 2007 à 13:52
Bonjour/Bonsoir,



Je cherche une solution en AS pour une anime, et je ne sais pas vraiment vers où m'orienter.


L'idée c'est de faire apparaître un clip à un point A, qu'il se déplace
jusqu'au point B et qu'il réapparaisse au point A de façon répété en
changeant sa taille et sa vitesse à chaque nouvelle translation.



J'ai fais des essais avec attachMovieClip, en chargent le clip déjà
animé sur le _root en boucle mais je ne suis pas arriver a modifier sa
taille ni sa vitesse.



J'aurais besoin d'un peu d'aide, merci.

12 réponses

faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
29 mai 2007 à 09:54
Alors tu fais :

NomDeTonClip.OnEnterFrame = function ()
{
/*déplacement*/
//déplacement vers la gauche mettre -5 pour déplacement vers la droite
this._x += 5;  
//déplacement vers le bas mettre un nombre négatif pour déplacement vers le haut
this._y = 2;   

/*taille*/
//tu peux faire un truc dans le genre :
this._xscale -= 1;
this._yscale = this._xscale; //cette ligne sert a garder ton image non déformé
}

A cela tu rajoute des test genre : si le clip dépasse telle point alors je le remet en position initiale, mais si tu avais fouiller un peu dans les source tu aurais trouvé au moins comment déplacer le clip que ce soit en fouillant du coté des petits jeux codé en AS ou autre.

Enjoy
Don't forget accept
0
Eastear Messages postés 15 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 7 juin 2007
29 mai 2007 à 13:50
Merci pour la réponse rapide mais ca ne fonctionne pas.
Tu as pris en compte le fait que j'utilise loadMovieClip ou pas?
Non je dit ça par ce qu'en utilisisant ton code tel quel (juste le nom du clip modifié) sur un nouveau document ça ne fonctionne pas...
0
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
29 mai 2007 à 16:03
Fait étape par étape...

Commence par juste faire déplacer ton clip.

Sinon est ce que ton clip se charge bien?
As tu mis le bon nom dans ce que je t'ai donner plus haut (nom du container nom du clip) essaye plusieurs chose et essaye de comprendre les résultats...
As tu bien fait un stop si tu as plusieurs images à la suite?
Recopier un code tel quel ne sert a rien essaye de le comprendre...

Enjoy
Don't forget accept
0
Eastear Messages postés 15 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 7 juin 2007
29 mai 2007 à 16:36
Toutes mes excuses, le code fonctionne, seulement il y avait un O majuscule sur le OnEnterFrame...


Mais il y a un truc que je n'arrive pas a obtenir c'est une translation
en diagonale, le clip ne se déplace que sur X, et Y ne sert qu'a
définir à quelle hauteur le clip doit apparaître sur le plan.


Dans l'exemple, Y=5 donc mon clip va apparaître a 5 px du en haut a gauche :

onEnterFrame = function(){
    _root.LOADER01.attachMovie("MC01", "LOADER01",_root.LOADER01.getNextHighestDepth());
}
_root.LOADER01.onEnterFrame = function ()
{
    this._x += 2; 
    this._y = 5;  

    this._xscale -= -0.5;
    this._yscale = this._xscale;

}
C'est étrange je pensais plutot que la position serait détérminer par le container, et le déplacement par "this._x +2;  this._y 5; "
0

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

Posez votre question
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
29 mai 2007 à 16:41
Oups effectivement il faut mettre this._y +=5; ce qui prouve que tu n'as pas compris le code données d'aileurs ;)

this._y +=5; revient a mettre this._y = this._y + 5; ou en francais incrémenter ca position de 5...

Enjoy
Don't forget accept
0
Eastear Messages postés 15 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 7 juin 2007
29 mai 2007 à 17:11
J'avoue que là je reste bête.


Par contre rien n'est vraiment aléatoire, même avec un hittest, les
taux d'agrandissement et de vitesse seront toujours les mêmes non?
0
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
29 mai 2007 à 17:14
bah la rien d'aléatoire car je t'ai donné des nombr statique...

Penche toi sur le random de flash : Math.random
et remplace les valeur 5 2 ou autre par des valeur aléatoire et le tour et jouer ^^

Enjoy
Don't forget accept
0
Eastear Messages postés 15 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 7 juin 2007
29 mai 2007 à 23:28
bon ok je pense avoir pigé pour le math.random, seulement, ca ne me permet pas de modifier la vitesse, mais seulement la trajéctoire ou la taille.

voilà le code pour le moment:

_root.LOADER01.attachMovie("MC01", "LOADER01",_root.LOADER01.getNextHighestDepth());

max = 5;
min = 0.5;
i = 1;
number = Math.random()*(max-min+1)+min;

_root.LOADER01.onEnterFrame = function ()
{
    this._x += 1; 
    this._y -= number;  

    this._xscale -= -0.5;
    this._yscale = this._xscale;
0
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
30 mai 2007 à 09:35
t'as qu'a faire un random sur X et un autre sur y -.-

Enjoy
Don't forget accept
0
Eastear Messages postés 15 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 7 juin 2007
30 mai 2007 à 13:28
Là vraiment je copmprend pas.
je n'avais même pas essayer car ca ne me semblait pas logique.
Comment avec des coordonés aléatoire la translation est toujours la même?
0
Eastear Messages postés 15 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 7 juin 2007
30 mai 2007 à 13:31
oups ok, j'ai pigé.
Je pensais que X et Y seraient diférent, alors qu'a chaque translation les données seront les même.
Pardon; je suis pas encore super familier avec l'AS.
0
Eastear Messages postés 15 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 7 juin 2007
30 mai 2007 à 13:52
A vrais dire c'est pas non plus une solution car lorsque je met les deux même math.random en X et Y, j'obtiens forcement un angle a 45°, et si je créé 2 math.random je me retrouve avec une trajéctoire aléatoire.

Bon je peux me satisfaire de ça:

_root.LOADER01.attachMovie("MC01", "LOADER01",_root.LOADER01.getNextHighestDepth());

max = 1;
min = 0.1;
i = 1;
numberX = Math.random()*(max-min+1)+2;

max = 1;
min = 0.1;
i = 1;
numberY = Math.random()*(max-min+1)+5;

_root.LOADER01.onEnterFrame = function ()
{
    this._x += numberX; 
    this._y -= numberY;  

    this._xscale -= -0.5;
    this._yscale = this._xscale;

}

l'écart de trajéctoire sera très minim, ca ca aller.

Maintenant il faut que je me mette aux hits
0