Forums Développement Multimédia

Aller au contenu

Un jardin fleuri en AS3

PAO Flash

5 réponses à ce sujet

#1 cate_38

    Ceinture Orange

  • Members
  • PipPipPip
  • 44 messages

Posté 02 July 2013 - 15:27 PM

Bonjour,

J'ai pour ce parterre fleuri simplement ce code (je pense que c'est de l'AS2)

gene = false;
this.onEnterFrame = function ()
{
    if (gene)
    {
            ++n;
            topy = _root._ymouse - 20 - Math.random() * 100;
            topx = _root._xmouse + Math.random() * 20 - 10;
            this.attachMovie("kuki", "kuki" + n, n);
            kukis = this["kuki" + n];
            kukis._x = _root._xmouse;
            kukis._y = _root._ymouse;
            kukis._yscale = kukis._y - topy;
            kukis._xscale = (topx - kukis._x) * 100 / 30;
            hanakazu = Math.round(Math.random() * 8 + 4);
            hanakakudo = 360 / hanakazu;
            hanairo = Math.round(Math.random() * 8);
            i = 1;
            while (i < hanakazu + 1)
            {
                    this.attachMovie("hanabira", "hanabira" + n * 1000 + i, n * 1000 + i);
                    hana = this["hanabira" + n * 1000 + i];
                    hana.gotoAndStop(hanairo);
                    hana._x = topx;
                    hana._y = topy;
                    hana._rotation = hanakakudo * i;
                    hana._xscale = hana._yscale = kukis._yscale / 2;
                    ++i;
            }
            happakazu = Math.round(Math.random() * 8);
            m = 0;
            for (;<img src='http://forums.mediabox.fr/public/style_emoticons/<#EMO_DIR#>/wink.png' class='bbc_emoticon' alt=';)' />
            {
                    if (m >= happakazu)
                    {
                            return;
                    }
                    this.attachMovie("happa", "happa" + n * 100 + m, n * 100 + m);
                    happas = this["happa" + n * 100 + m];
                    happas._x = _root._xmouse;
                    happas._y = _root._ymouse;
                    happas._xscale = Math.random() * 40 - 20;
                    happas._yscale = kukis._yscale / 3 + Math.random() * 20 - 10;
                    ++m;
            }
    }
}
;
this.onMouseDown = function ()
{
    gene = true;
}
;
this.onMouseUp = function ()
{
    gene = false;
}
;
 

et j'aimerai faire un fla en AS3. La souris suivrait donc les coordonnées afin de voir les fleurs se multiplier.
Comment pourrai-je le construire et le coder ?
Merci pour votre réponse.

Cate

#2 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 02 July 2013 - 15:31 PM

c'est normal ça dans le code ? : "for (;<img src='http://forums.mediabox.fr/public/style_emoticons/<#EMO_DIR#>/wink.png' class='bbc_emoticon' alt=';)' />"

#3 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 02 July 2013 - 15:51 PM

Salut,

Citation

Comment pourrai-je le construire et le coder ?

1 - traduire en français le code que tu as (qui est en AS2)
2 - poser sur papier le détail de ce que veux obtenir, pas à pas
3 - voir si le code que tu as traduit te donne les pistes pour faire ce que tu as posé sur papier
4 - à partir de ces deux éléments, réécrire ton code en AS3 avec la doc comme aide pour la syntaxe

Là tu nous balance un code (vieux car AS2), sans autre explication que :

Citation

La souris suivrait donc les coordonnées afin de voir les fleurs se multiplier.

Pas super explicite... sauf si nous on s'amuse à relire tout le code en essayant de deviner ce qu'il est sensé faire.

Si tu veux apprendre à faire les choses avec du code, récupérer des bouts de codes essayer de les triturer puis finalement venir nous demander la solution car tu n'y arrive pas ne te fera pas progresser.

La chose la plus importante quand on veut commencer à faire du code c'est l'algorithmique, a savoir écrire toute la mécanique et les processus du programme en français, tout simplement, pour s'assurer que tout est propre et que les idées sont claires, puis une fois que le processus est maîtrisé, le traduire dans un code qui correspond à la technologie que tu souhaite employer.


@Henri

Citation

c'est normal ça dans le code ?
C'est un bug du forum qui, lors d'un copier/coller, remplace certaines parties du code en balises auto du forum, ici il faut traduire :

if ( ; ; ) .....

Le point virgule et la parenthèse fermante se transforment automatiquement en smiley du forum, qui entouré des chevrons pour la mise en forme du code devient la balise d'insertion auto du smiley.

#4 cate_38

    Ceinture Orange

  • Members
  • PipPipPip
  • 44 messages

Posté 02 July 2013 - 21:46 PM

Bonsoir,

Non Henri ce n'est pas normal que cette ligne se soit "glissé" dans le code, effectivement, comme le dit Spi c'est :
for (; ;)
{
if (m >= happakazu)

Bonsoir Spi,

J'envoie ce .fla, c'est pour cela que je mets "penser que la souris suivrait les coordonnées". Je voyais cela...

Ben "censer deviner" ça a l'air si simple mais je pense que moi il me faudrait une quinzaines d'années... je suis littéraire mais le reste...

Traduire en français le code même simple et faire de l'algorithmique est pour moi très complexe et relève de l'exploit ou bien du un coup de chance ! du coup je suis restée "à l'essentiel" ! malheureusement...

Fichier(s) joint(s)



#5 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 04 July 2013 - 18:10 PM

Salut,

Citation

Comment pourrai-je le construire et le coder ?

Si c'est bien ta question, tu as eu la réponse Image IPB

Si en revanche ta question c'est : pouvez vous le faire à ma place ?
La réponse est non, du moins pour ma part, puisque je l'ai déjà fait dans d'autres sujets que tu as posté et que tu ne semble pas avoir souhaité avancer du côté code Image IPB

Pour t'aider quand même, l'algorithme est des plus simple et tu n'a pas besoin d'en savoir bien long pour l'écrire.

On commence par se poser la question de ce qu'on veut faire.

Citation

Quand j'appuie sur le bouton de la souris une fleur, choisie aléatoirement parmi un certain nombre de base, s'affiche à la position de la souris.

Après on peut complexifier un peu la chose si on reprend l'exemple que tu as posté, à savoir faire en sorte que la taille, la tige et les pétales soient choisies aléatoirement parmi un certain nombre de modèles disponibles, mais pour le moment il faut se limiter à quelque chose de simple.

Puis on formule ça de manière un peu plus logique :

Citation

Quand le bouton de la souris est enfoncé

crée une nouvelle fleur à partir d'un modèle "fleur" qui contient toutes les fleurs possibles

choisi aléatoirement la fleur à afficher

place la fleur aux coordonnées de la souris

affiche la fleur sur la scène


Avec ses connaissances (même basiques) en programmation on détaille un peu le processus :

Citation

Etape 1 : créer un modèle "Fleur" contenant sur chaque frame une fleur différente
Etape 2 : créer le code pour afficher les fleurs

On cherche un peu ce qu'on a besoin de connaître pour écrire l'algorithme en code :

Citation

Evenements sur la souris. (MouseEvent)
Objets dynamiques (exporter pour AS)
Position de la souris (mouseX et mouseY)
Aller à une frame précise d'un objet (gotoAndStop)
Ajouter un objet à la liste d'affichage (addChild)

On s'arme de la doc de Flash pour voir comment se manipule ce qu'on ne sait pas encore utiliser : http://help.adobe.co...actionscript/3/

Et on écrit le premier jet du code :

var fleur:Fleur;

stage.addEventListener(MouseEvent.MOUSE_DOWN, creeFleur);

function creeFleur(e:Event):void{
        fleur = new Fleur();
        fleur.x = mouseX;
        fleur.y = mouseY;
        fleur.gotoAndStop(int(Math.random()*6));
        addChild(fleur);
}

Et voilà tu as ton point de départ, le reste c'est à toi de le travailler.

#6 cate_38

    Ceinture Orange

  • Members
  • PipPipPip
  • 44 messages

Posté 05 July 2013 - 12:02 PM

Bonjour à tous,
Spi merci pour tes lignes.

Citation

Si en revanche ta question c'est : pouvez vous le faire à ma place ?
La réponse est non, du moins pour ma part, puisque je l'ai déjà fait dans d'autres sujets que tu as posté et que tu ne semble pas avoir souhaité avancer du côté code Image IPB
Non quand je peux faire quelque chose que je peux "construire" par moi-même j'évite mais je demande conseils.
Pas seulement en Flash d'ailleurs... mais aussi comme toi j'essaye d'aider du mieux que je peux sur différentes choses qui sont dans
ma p'tite tête avec mon "cerveau amoché".

Ici il y a des personnes qui sont de grosses pointures mais aussi des personnes qui évitent de demander justement parce qu'elles n'arrivent pas alors c'est facile pour elles de prendre le code que des personnes ont "osé" poster sans bien comprendre.
J'essaye de comprendre malgré mon ignorance !
L'erreur que j'ai faite au début malgré mes demandes, c'était d'être dans un ancien forum qui recopiait des codes dans d'autres .fla.
J'ai perdu du temps à ne rien comprendre et pourtant, si tu savais comme je l'aurais voulu !
Je comprenais seulement les boutons...
Du coup je faisais de belles choses mais sans comprendre les lignes ! une soif non rassasiée...

Pour en revenir au parterre fleuri -parce que c'est le sujet !!!-,
Je pensais déjà faire dessiner des fleurs, déjà 4 ou 5, mais effectivemnt je ne savais pas par où commencer et construire.

Je vais essayer de bien commencer et construite quelque chose qui tient "d'aplomb" ou presque... :-)

Merci pour tes conseils Spi,
Cate



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)