Petite pompe pour gonfler une forme... j'y arrive pas !

Résolu
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011 - 14 mars 2011 à 22:02
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011 - 1 sept. 2011 à 18:28
bonjour !
je voudrai donc faire gonfler une forme au fur et a mesure qu'on appuie par va et viens sur un petit levier.
j'ai fait un symbole nommé en occurrence "ballon"
un symbole "pompe" dans lequel j'ai imbriqué un symbole "manivelle".

Donc, quand j'abaisse le levier et qu'il arrive à une certaine coordonné "y", le ballon se gonfle.

a=100;
onEnterFrame=function(){
pompe.manivelle.onPress=function(){
this.startDrag(lockCenter,0,-50,0,-10);
}
pompe.manivelle.onRelease=function(){
this.stopDrag();
}
if(pompe.manivelle._y<=-30){
ballon._xscale=a;
ballon._yscale=a;
}
if(pompe.manivelle._y>=-20){
ballon._xscale=a+10;
ballon._yscale=a+10;
a=a+10;
}
}


Le soucis c'est que quand j'abaisse le levier le ballon gonfle tout seul et ne s'arrête plus. J'ai vu que le calcul se faisait a chaque image seconde ce qui me pose problème...
Je sais pas trop comment faire. Je débute dans le flash

merci pour la patience qu'auront ceux qui voudront bien m'aider.

17 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
14 mars 2011 à 22:16
Bonjour, il faut calculer le déplacement de ton clip toutes les frames, c'est à fire à l'aide soit d'un enterframe, soit d'un "mouseMove"...

Tu colles le Y actuel dans une variable que tu soustrairas au nouvel Y au prochain cycle de calcul.

Peg'
3
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
16 mars 2011 à 01:46
ben je ne sais pas trop comment t'expliquer d'autre ...

Tu récupères le Y actuel, tu le compare au oldY, par exemple.
Puis une fois la comparaison faite et ton calcul terminé, tu fais : oldY = Y
Et tu relances le cycle suivant de l'enterframe/mouseMove

C'est simple.

Peg'
3
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011
15 mars 2011 à 14:35
Mmmh je vois pas trop comment faire... j'ai essayé différentes choses qui pouvais y ressembler mais sans succès. J'ai pas encore toute les marche pour descendre sans chuter la ou je veux avec flash donc bon si tu pouvais être un tout pti' peu plus explicite ou illustrative :p

merci
0
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011
16 mars 2011 à 16:27
a=100;
b=0;
onEnterFrame=function(){
pompe.manivelle.onPress=function(){
this.startDrag(lockCenter,0,-50,0,-10);
};
pompe.manivelle.onRelease=function(){
this.stopDrag();
};


if(pompe.manivelle._y<=-30){
if(b=-20){
b=a+1;
if(ballon._xscale=b){
if(ballon._yscale=b){
a=b+1;
};
};
};
};


j'ai essayé différemment mais apparemment j'ai toujours pas pigé la chose...

________________
bouh !
0

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

Posez votre question
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
16 mars 2011 à 16:34
Déjà tes fonctions de drag n'ont rien à faire dans l'enterframe, ça ne sert à rien de les déclarer toutes les frames...

Et où récupères-tu le Y de ton clip dragué ?

Peg'
0
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011
16 mars 2011 à 18:48
J'aurai du mettre ce post' dans le coin débutant, je sais pas comment "syntaxer" la récupération du y de la manivelle dans une variable. j'ai essayé des truc qui fonctionnent pas genre :
Y=pompe.manivelle._y;

ou dans l'autre sens mais ça bug encore...

________________
bouh !
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
16 mars 2011 à 19:31
tu devrais faire simple :

var Y:int = monclip._y;
var oldY = Y;
const pompeY:int = [tailel de la pompe en pixels] //à remplir
monclip.onMouseMove = function() {
Y = monclip._y
monBallon.gonfle((Y-oldY)/pompeY);
oldY = Y;
}


Sachant que "gonfle()" est une fonction qui gonflera ton ballon avec en paramètre un Number entre 0 et 1.

deux choses :
- ça fait longtemps que je n'ai pas fait d'AS2
- copier/coller ce code sans le comprendre et le modifier ne sert à rien.

Peg'
0
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011
16 mars 2011 à 20:37
Ben ouè je comprends pas ce code. Je sais pas si je devais juste coller ça tel quel dans une image clé et refaire les liens des occurrences mais dans ce cas,j'arrive pas à le faire fonctionner non plus.

Séquence=Séquence 1, layer=Calque 1, frame=1 , ligne 1	Impossible de charger la classe ou l'interface 'int'.



On est pas très loin dans Flash actuellement et le voie de façon intuitive. On a fait des interpolation, des boutons, des clips avec des occurrences,un tout pti' peu de son,... bref pas grand chose.

Je sent que je vais lâcher l'affaire et j'aime pas ça

________________
bouh !
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
16 mars 2011 à 22:41
Mais tu codes en quelle version de flash pour qu'il ne connaisses pas l'int ?

Peg'
0
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011
16 mars 2011 à 22:43
en AS2.

pourtant "int" est en bleu alors il doit bien servir a quelque chose...


________________
bouh !
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
16 mars 2011 à 23:04
c'est un typage pour "integer" (entier).
AS2, ok, mais AS2 de Flash 5.0 ?

Peg'
0
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011
16 mars 2011 à 23:05
flash CS5 mis à jour et tout...


________________
bouh !
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
16 mars 2011 à 23:11
alors il y a un soucis avec ton code.

Peg'
0
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011
17 mars 2011 à 15:26
Youhou trop content ^^ça fonctionne :)

///////////////////////////
// activation du bouton //
/////////////////////////
pompe.manivelle.onPress=function(){
this.startDrag(lockCenter,0,-50,0,-10);
};
pompe.manivelle.onRelease=function(){
this.stopDrag();
};



//////////////////
// effet pompe //
////////////////
// variables
a=100;
b=0;
// code pompe
onEnterFrame=function(){
if(pompe.manivelle._y<=-30){
b=a+10;
if(b=-20){
if(a<b){
ballon._xscale=b;
ballon._yscale=b;
};
if(ballon._xscale=b){
if(ballon._yscale=b){
a=b+10;
};
};
};
};


merci beaucoup.
Je vais voir si je peu pas l'alléger a l'aide de mon premier code.


________________
bouh !
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
17 mars 2011 à 15:45
bien joué !
Fais des tests pour voir si tu ne peux pas éviter l'enterframe et remplacer par un mouseMove.

Peg'
0
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011
17 mars 2011 à 15:57
j'ai préféré l'enterframe au cas ou ça interfèrerai avec le reste de mon animation. Je suis dans une cadence de 24ips mais bon... c'est pas un vrai jeu alors pour un premier rendu d'animation je pense que mon prof' va aimer ^^

En tout cas il fallait bien une comparaison de nouvelle et ancienne position, j'ai pas réussi à optimiser le code avec ma première version raté.

encore merci

________________
bouh !
0
Fabz49 Messages postés 12 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 1 septembre 2011
1 sept. 2011 à 18:28
Zut je peux pas donner mon animation :(
elle fait 14mo avec le son et tout...



________________
bouh !
0
Rejoignez-nous