Trajectoire (AS2)

Résolu
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010 - 25 mai 2010 à 08:29
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010 - 26 mai 2010 à 16:28
Bonjour,
Je cherche à faire effectuer à un sprite une trajectoire avec un pas défini, cela pour un petit jeu flash (en AS2). Je m'explique.

Suite à un évènement, je veut faire parcourir un clip sur une ligne droite allant de [x;y] à [x';y'] avec un pas (étape de p pixels) précis. Et j'ai pas trop envie de me lancer dans le calcul d'un algorithme, si une fonction existe.

Si elle existe pourriez vous me l'expliquer? ^^

Je rappelle que je suis de loin encore un novice, donc allez y mollo

Merci d'avance en tout cas!

8 réponses

piere2 Messages postés 235 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 26 mai 2013
25 mai 2010 à 18:22
Voici un petit bout de code en AS2 qui anime un clip.

th = this;

//paramètres variables
delai = 2;
pas = 1;
x_fin = 800;
//_______________

function avancer() {
fini = x_fin-pas
if (clip._x>=fini) {
clearInterval(tempo);
}
clip._x += pas;
}

clip.onRelease = function() {
tempo = setInterval(th, "avancer", delai);
};


On peu aussi utiliser les Tween, mais de toute façon il est assez difficile de trouver un déplacement totalement fluide; beaucoup d'essais à la clé.

Pi'ère2
3
piere2 Messages postés 235 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 26 mai 2013
25 mai 2010 à 18:41
Pas besoin de te compliquer la vie il suffit d'ajouter des paramètres pour le _y.

le code deviendra ainsi:

th = this;

//paramètres variables
delai = 2;
pas_x = 1;
pas_y = 0.5;
x_fin = 800;
//_______________

function avancer() {
fini = x_fin-pas_x;
if (clip._x>=fini) {
clearInterval(tempo);
}
clip._x += pas_x;
clip._y += pas_y
}

clip.onRelease = function() {
tempo = setInterval(th, "avancer", delai);
};


Pi'ère2
3
piere2 Messages postés 235 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 26 mai 2013
25 mai 2010 à 12:07
Bonjour,
Tu peux tout simplement faire une interpolation de mouvement.
Un clip sur la première image, tu le copie en place puis tu lui donne les nouveaux paramètres x et y et tu le place à n. images plus loin.
Puis clic droit sur le premier clip et "créer un interpolation de mouvement".

Si non tu peux utiliser setInterval(), ce que je fais d'habitude, sauf que je viens d'avoir une grosse galère avec ce que cela produit pour une animation lue dans divers environnements.


Pi'ère2
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
25 mai 2010 à 17:49
En fait, les coordonnées (x';y') différeront à chaque fois, c'est pas un truc précis, donc je peux pas faire une animation (enfin, je pourrais et ensuite essayer de jouer avec l'orientation du clip qui contient l'anim' mais c'est lourd...)

Tu peux m'expliquer un peu plus sur le setInterval()? Ça m'a déjà l'air d'être plus dans ce que j'aimerai trouver
0

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

Posez votre question
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
25 mai 2010 à 18:35
Merci beaucoup pour ton aide!

Je vais plancher dessus, mais à ce que je vois, je vais quand même devoir trouver un algorithme... (mes mouvements seront souvent obliques...)

Bref de la galère en perspective mais ceci devrait quand même bien m'aider à simplifier tout ça!

Au pire je repasserai pour plus d'infos.
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
25 mai 2010 à 18:52
Que dire mais vraiment merci! Je me préparais à des heures de réflexion... ^^

Thanks!
0
piere2 Messages postés 235 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 26 mai 2013
25 mai 2010 à 20:06
Si cela peut t'aider j'ai fait un petit fla dans lequel on peut changer les paramètres.
Donne-moi une adresse mail pour le poster.


Pi'ère2
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
26 mai 2010 à 16:28
Je t'ai envoyé ça par message privé.
0
Rejoignez-nous