Télécharger le zip
Hou-là là ... bon, Alors tu viens d'arriver dans le monde de Flash et tu ne connais pas la déclaration des variables, les boucles, les tableaux, les traitements de masse de données dynamiques et les fonctions enterframe ?Si c'est le cas, je ne dirais rien, sinon ....Peg'
Hou-là là... Incroyable un langage sans déclaration de variables !!!???? Je sais pas si t'as bien lu (si c'est pas le cas je ne dirais rien) mais c'est niveau débutant !!!Si t'as d'autres remarques extrêmement constructives du même genre...évite de les poster. Par contre si tu as des propositions concrètes n'hésite pas.
le niveau "débutant" n'excuse pas toutes ces erreurs de code d'amateur à peine éclairé !Ne pas savoir que : "var Focal:Number; Focal=5000;" est plus simplement écrit "var Focal:Number =5000;" c'est pas débutant, ça fait partie du tutoriel as2 !Ensuite 633 lignes de déclaration de variables (espaces compris), ça fait beaucoup tu ne trouves pas ?Faire un tableau contenant des objets avec chacun 3 variables n'a pas du te traverser l'esprit ... c'est pour ça que je te disais que tu ne devais pas savoir faire de tableau !Pour finir, on n'est plus en Flash 5 et le "gotoAndPlay(2)" pour faire boucler un code c'est fini ça ... il yu a des fonction adaptées telles que les setInterval() ou les onEnterframe() ... mais tu ne dois pas connaitre non plus.Ma première remarque te donnait tout les éléments pour refaire ton code de façon "débutante" réellement !Si tu viens de te mettre à Flash et que c'est ton premier code, n'hésite pas à le dire, mais j'ai bien vérifié avant de mettre mon premier post.Après si tu n'es pas capable d'accepter les remarques, ne poste pas tes sources !Peg'
Je pense que tu est passé à coté de l'essentiel du code parce que tu avais envie de critiquer avant toutes choses. A savoir comment on reproduit un effet de vague, après je laisse le soin a des "experts" comme toi de voir si le code est bien écrit ou pas. (Après tout ça sert a ça les pisseurs de code). Moi c'est les algos qui m'interresse.Pour ton info, c'est pas ma première source (je t'invite a aller voir), et arrette de prendre les gens pour des andouilles. Critiquer ca ne veut pas dire rabaisser les gens comme tu le laissait sous entendre dans ton premier poste. Je crois que tu est de ceux qui aiment critiquer pour le plaisir d'allumer les gens. Si tu est si bon que ca tu qu'as poster une correction complete : comme ca moi j'ai l'idee et toi tu pisses du code.Je vais reprendre points par points :1) var Focal:Number; Focal=5000;" est plus simplement écrit "var Focal:Number =5000;écrire en deux lignes n'est pas choquant, apres j'appelle le constructeur de Number quand j'ai envie. C'est une critique pour du beurre.2)Faire un tableau contenant des objets avec chacun 3 variables n'a pas du te traverser l'esprit. Quand tu as autant de points a affecter, tableau ou pas il faut quand meme que tu ecrive les affectations. Comme les données ne sont pas generées par un modeleur ou autre, je vois pas comment on peut automatiser un process que ne peut s'automatiser.Si tu veux, j'ai poster dans une autre source une classe matrice pour gerer des tableaux, recupere la.3)Pour finir, on n'est plus en Flash 5 et le "gotoAndPlay(2)" pour faire boucler un code c'est fini ça ... Effectivement, je te concède ce point, je ferais une modif dès que j'ai le tempsVoila des remarques qui vont completement aider la communauté merci a Pegase31 pour ses avis d'expert eclairés.
tu crées une "classe matrix" et tu nous chies ce genre de merde de code ?Non, franchement, là tu te fout réellement de nous .. moi je t'invites à revoir entièrement le concept de ce forum.Ta source n'a rien de réutilisable.Heureusement qu'il n'y a pas 5000 points, j'imagine pas ton code.Allez, t'es de mauvaise foie et tu n'acceptes aucune critique. Pour ma part je préfère ne même pas noter cette parodie de source... je ne répondrai plus à tes agressions.Peg'
J'ai beau moi aussi m'intéresser que aux algorithmes je m'efforce de rendre mon code modulaire.z1=amp*Math.sin(2*3.14*speed*x1+phi)+amp;...z38=amp*Math.sin(2*3.14*speed*x38+phi)+amp;z39=amp*Math.sin(2*3.14*speed*x39+phi)+amp;c'est mieux ainsi :for(i=1;i<40;i++)this["z"+1]=amp*Math.sin(2*3.14*speed*this["x"+38]+phi)+amp;Je ne dirais rien d'autre pour ne pas "paraitre" méchant.
Je souhaite neanmoins cloturer ce debat sterile en expliquant la chose suivante : en realité j'ai du affecter les coordonnées de chaques segments un par un. Le probleme c'est que lorsque ces coordonnées ne sont pas generées automatiquement on est obligé de tout se taper a la main et je rejoint totalement Pegase31 qui dit :"Heureusement qu'il n'y a pas 5000 points".A LA BASE, J'AI POSTER CE CODE POUR DISCUTER DE CE PROBLEME !!!.En clair on est obligé d'ecrire 600 lignes d'affectations (tableau ou pas tableau !!!). Dès lors il y a une solution : utiliser un generateur de coordonnées puis les stoquer dans un tableau. Le problème : trouver un generateur de coordonnées.C'est une des conditions pour que le code soit completement reutilisable.Je tiens a remercier SHUBENKA, je vais modifier le code comme il le propose :for(i=1;i<40;i++)this["z"+1]=amp*Math.sin(2*3.14*speed*this["x"+38]+phi)+amp;Effectivement, en tant que debutant,je ne savais pas que l'on pouvait ecrire this["z"+1], encore merci pour cette info.Pour terminer, je souhaite dire a Pegase31 que au contraire, j'ai bien noté ses critiques et que j'aprecie la critique. Enfin, je signal que je suis un pisseur de code comme les autres. Le code que j'ai posté est une IDEE, un concept sur le mouvement de nage d'un poisson. Ce n'est pas un code optimisé.
Excellent !!!Bravo.
salut,pour ce qui est du code d'ondulation je te dit bravo !pour le reste je te propose quelques modif pou optimider ton code :/************************* image 1 : 26 lignes au lieu de 463 **************************///liste des points du poissonmodele = Array({x:4, y:63, z:0}, {x:12, y:71, z:0}, {x:4, y:67, z:0}, {x:7, y:71, z:0}, {x:33, y:82, z:0}, {x:54, y:87, z:0}, {x:57, y:15, z:0}, {x:34, y:27, z:0}, {x:16, y:45, z:0}, {x:81, y:14, z:0}, {x:81, y:90, z:0}, {x:100, y:15, z:0}, {x:105, y:88, z:0}, {x:124, y:21, z:0}, {x:125, y:84, z:0}, {x:145, y:28, z:0}, {x:145, y:79, z:0}, {x:160, y:36, z:0}, {x:160, y:73, z:0}, {x:170, y:41, z:0}, {x:171, y:70, z:0}, {x:180, y:44, z:0}, {x:180, y:68, z:0}, {x:188, y:44, z:0}, {x:188, y:69, z:0}, {x:76, y:5, z:0}, {x:108, y:5, z:0}, {x:180, y:24, z:0}, {x:181, y:36, z:0}, {x:72, y:101, z:0}, {x:87, y:108, z:0}, {x:167, y:93, z:0}, {x:179, y:88, z:0}, {x:176, y:75, z:0}, {x:213, y:35, z:0}, {x:242, y:32, z:0}, {x:233, y:59, z:0}, {x:239, y:83, z:0}, {x:231, y:84, z:0});//init des variables pour le calculfor (p=1; p<=modele.length; p++) { this["x_"+p] = modele[p-1].x; this["y_"+p] = modele[p-1].y;}/************************* image 3 : 13 lignes au lieu de 125 **************************///calcul du mouvement ondulatoireif (phi<2*Math.PI) { phi = phi+phi_inc;} else { phi = phi_inc;}for (p=1; p<=modele.length; p++) { modele[p-1].z = amp*Math.sin(2*3.14*speed*modele[p-1].x+phi)+amp; //calcul des coordonnees this["x_"+p] = modele[p-1].x*Focal/(modele[p-1].z+Focal)+modele[p-1].x+XCamera/2; this["y_"+p] = modele[p-1].y*Focal/(modele[p-1].z+Focal)+modele[p-1].y+YCamera/2;}gotoAndPlay(2);
PS : c'est le meme principe qie propose "shubenka" plus haut mais avec en plus la mise en Array de tout tes poins :)
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte