AccueilFAQRechercherMembresGroupesS'enregistrerConnexion

Forum de graphisme, codage et game design proposant des tutoriels, astuces, libres services et commandes dans les domaines de l'infographie amateur, de l'intégration web (HTML et CSS essentiellement) ainsi que dans la conception de RPG sur forum.


    Animation de gravité zero

    Partagez
    avatar
    GoldenSun2
    MasculinAge : 23Messages : 427

    le Mer 11 Fév 2009 - 21:58



    Introduction
    Donc comme d'habitude, ouvrez Flash et créer un nouveau document
    Importé une l'image que vous voulez faire flotté dans la bibliothèque
    Convertissé la en clip, allez dans les propriétés donne lui un nom d'occurrence, pour moi, se sera "sable"

    Actionscript
    Bon, le nom des variables est clair, mais si vous ne comprenez pas, questions et je répondrai dés que possible.
    Code:

    //===Variables Objets===//
    nombreObjet = 500;
    nomClip = "sable";
    largeurObjet = 4;
    //===Fin===//

    //===Variables Crea===//
    longueurCrea = 500;
    largeurCrea = 200;
    ///===Fin===//

    //===Variables Globales===//
    force = 5;
    ralenti = true;
    graviteX = true;
    graviteY = true;
    //===Fin===//

    //On duplique l'étoile x fois
    for (i = 0; i <= nombreObjet; i++) {
       this[nomClip].duplicateMovieClip(nomClip+i, i); //On duplique l'étoile en lui donnant comme nom etoile, puis etoile 1... jusqu'à etoile 200
       this[nomClip+i]._x = random(550); //On positionne l'etoile quelque par sur l'axe x
       this[nomClip+i]._y = random(400); //Même chose mas sur l'axe y
       this[nomClip+i]._height = random(largeurObjet); //Ici on définis la hauteur de l'etoile
       this[nomClip+i]._width = this[nomClip+i]._height; //On fait en sorte qu'elle soit carrée
    }

    onEnterFrame = function () {
       //Si on peu définir un sens de début alors on le fait
       if (ralenti == true) {
          choix = random(2); //On choisit le sens: 0: droite, 1: gauche
          ralenti = false; //On n'empêche la condition de se repeter sinon ça devien du n'importe quoi
          ajout = -1; //Permettra de diminuer la force
       }
       //Ici on va juste déclarer le sens
       if (choix == 0 || choix == 1) {
          //Si le sens va à droite
          if (choix == 0) {
             sens = 1; //Alors on va à droite
          }
          //Si le sens va à gauche
          if (choix == 1) {
             sens = -1; //Alors on va à gauche
          }
          force += ajout; //Ici on ajoute ou retire 1 à la force. Permettra de changer le sens plus bas
          //Si la force est lente
          if (force <= 5) {
             ajout = 1; //Alors j'augmente la force pour que le sens change plus bas
          }
          //Si la force est élevée
          if (force >= 20) {
             ralenti = true; //Alors on dit que le ralenti est vrai et on revient en haut (24e lignes)
          }
       }
       //On crée la boucle qui va permettre de déplace les x duplications
       for (i = 0; i <= nombreObjet; i++) {
          forceX = this[nomClip+i]._height/force*sens; //On déclare la force gravitationnelle X
          forceY = this[nomClip+i]._height/5; //Ici avec Y
          //Si on peut changer le sens vertical, on le fait
          if (graviteY == true) {
             choixGraviteY = random(2); //On choisit le sens de Y: 0: droite, 1: gauche
             graviteY = false; //On n'empêche la condition de se repeter pour Y
             ajout = -1; //Permettra de diminuer la force
          }
          //Ici on va juste déclarer le sens
          if (choixGraviteY == 0 || choixGraviteY == 1) {
             //Si le sens va à droite
             if (choixGraviteY == 0) {
                this[nomClip+i]._y += forceY; //On déplace Y vers la droite
             }
             //Si le sens va à gauche
             if (choixGraviteY == 1) {
                this[nomClip+i]._y += -forceY; //On déplace Y vers la gauche
             }
             //Si la force est élevée
             if (force >= 10) {
                graviteY = true; //Alors on dit que graviteY est vrai et on revient en haut (54e lignes)
             }
          }
          //Si on peut changer le sens horizontal, on le fait
          if (graviteX == true) {
             choixGraviteX = random(2); //On choisit le sens de X: 0: droite, 1: gauche
             graviteX = false; //On n'empêche la condition de se repeter
             ajout = -1; //Permettra de diminuer la force
          }
          //Ici on va juste déclarer le sens
          if (choixGraviteX == 0 || choixGraviteX == 1) {
             //Si le sens va à droite
             if (choixGraviteX == 0) {
                this[nomClip+i]._x += forceX;  //On déplace X vers la droite
             }
             //Si le sens va à gauche
             if (choixGraviteX == 1) {
                this[nomClip+i]._x += -forceX;  //On déplace X vers la gauche
             }
             //Si la force est élevée
             if (force >= 10) {
                graviteX = true; //Alors on dit que graviteX est vrai et on revient en haut (75e lignes)
             }
          }
          //Si l'etoile arrive en bas
          if (this[nomClip+i]._y >= largeurCrea + largeurObjet) {
               this[nomClip+i]._y = 0; //On le replace à 0 sur l'axe Y
            }
          //Si l'etoile arrive en haut
          if (this[nomClip+i]._y <= -largeurObjet) {
             this[nomClip+i]._y = largeurCrea + largeurObjet; //On la replace un peu plus bas que notre animation
          }
             
          //Si l'etoile est toute à droite
          if (this[nomClip+i]._x >= longueurCrea + largeurObjet) {
             this[nomClip+i]._x = 0; //On le replace à 0 sur l'axe X
          }
          //Si l'etoile est toute à gauche
          if (this[nomClip+i]._x <= -largeurObjet) {
             this[nomClip+i]._x = longueurCrea + largeurObjet; //On la remet toute à droite
          }
       }
    }

    Variables:

      //===Variables Objets===//
    • nombreObjet: Nombre de fois qu'il faut dupliquer l'objet, remplace "x" dans les commentaires
    • nomClip: C'est le nom d'occurrence que vous avez donnez au clip
    • largeurObjet: C'est la largeur maximale de l'objet que vous voulez créer
      //===Fin===//

      //===Variables Crea===//
    • longueurCrea: longueur de la création (peu être plus élevé)
    • largeurCrea: largeur de la création (peu être plus élevé)
      ///===Fin===//


    Remarques:

    • L'image utilisée sera toujours carré


    Rendu
    Ici j'ai pris ma sign Gaara car je trouve que le 0 gravité sur le sable est bien quand il le contrôle ^^


    Bon voilà, questions, conseils et suggestions? Postez et je vous répondrai dés que possible ^^


    Dernière édition par GoldenSun2 le Mer 11 Fév 2009 - 23:23, édité 1 fois
    avatar
    Riku Asakura
    MasculinAge : 30Messages : 5736

    le Mer 11 Fév 2009 - 23:02

    Ah ouais excellent effet !
    Bravo !
    Je prends Razz

    Merci beaucoup !




    Yo ho, all together
    Hoist the colours high
    Heave oh, thieves and beggars
    Never shall we die
    avatar
    GoldenSun2
    MasculinAge : 23Messages : 427

    le Mer 11 Fév 2009 - 23:11

    Merci Riku ^^
    avatar
    Fura
    FémininAge : 30Messages : 5881

    le Mer 11 Fév 2009 - 23:21

    Idem, par contre tu peux l'enlever du spoiler s'il te plaît? (j'veux écouter la musique, mais j'peux point, ça referme le spoiler :p)
    avatar
    Silver
    MasculinAge : 23Messages : 6173

    le Mer 11 Fév 2009 - 23:24

    Je suis un noob en flash , si on veut pas un grain de sable on fait comment ? comme pour les etoiles un peu ? ^^
    Y aurai pas gravité 1 ou 2 XD
    Parce que c'est un lent ^^
    Merci du partage =)




    «L’homme exploite l’homme et parfois c’est le contraire.»



    * Art Silver *
    - -
    avatar
    GoldenSun2
    MasculinAge : 23Messages : 427

    le Mer 11 Fév 2009 - 23:25

    Voilà Fura, si il n'y a pas encore de tuto dessus, j'irrait mettre un tuto sur les son xD
    avatar
    GoldenSun2
    MasculinAge : 23Messages : 427

    le Mer 11 Fév 2009 - 23:26

    Ben pour accélérer, tu augmentes juste la valeur vitesse et si tu veux, tu peux encore modifier le code. Sinon, ça dépend de l'objet aussi, si tu met un objet de 20 px, ça ira plus vite. Ou tu peux modifier la valeur de force ^^
    Puis quand je dis 0 c'est pour dire que ça flotte xD


    Dernière édition par GoldenSun2 le Mer 11 Fév 2009 - 23:29, édité 1 fois
    avatar
    Silver
    MasculinAge : 23Messages : 6173

    le Mer 11 Fév 2009 - 23:28

    Justement comment on change l'objet ^^'

    PS : Il ya deja 2 ou 3 tuto sur le son ^^




    «L’homme exploite l’homme et parfois c’est le contraire.»



    * Art Silver *
    - -
    avatar
    GoldenSun2
    MasculinAge : 23Messages : 427

    le Mer 11 Fév 2009 - 23:32

    Quand tu importes ton images dans la bibliothèque, elle se met sur ton plan de travail. La, tu clic droit dessus et tu fais convertir en symbole. Une fenêtre s'ouvre, dans nom tu met ce que tu veux, et dans type tu met clip. Puis, normalement en bas, avec CS3, qaund tu clic sur l'image que tu viens de convertir, il est marque en bas à gauche "", et la tu met le nom que tu veux. Puis, dans l'AS, dans la variable "nomObjet", tu met le nom que tu as mis dans nom d'occurrence.
    avatar
    Silver
    MasculinAge : 23Messages : 6173

    le Mer 11 Fév 2009 - 23:33

    Merci beaucoup =)




    «L’homme exploite l’homme et parfois c’est le contraire.»



    * Art Silver *
    - -
    avatar
    Fura
    FémininAge : 30Messages : 5881

    le Mer 11 Fév 2009 - 23:35

    Pour le son, ce tuto n'aborde pas le sujet du son

    Pour le reste, je crois qu'il est temps que je finisse mon tuto sur les bases de flash, allez c'est parti je m'y remets, ça devrait t'aider Silver je pense
    avatar
    Silver
    MasculinAge : 23Messages : 6173

    le Mer 11 Fév 2009 - 23:36

    Haaaa =)
    Sa serai cool Fura ^^




    «L’homme exploite l’homme et parfois c’est le contraire.»



    * Art Silver *
    - -
    avatar
    GoldenSun2
    MasculinAge : 23Messages : 427

    le Mer 11 Fév 2009 - 23:37

    Oui tu as raison fura, moi j'ai trop la flemme d'en faire un xD
    avatar
    Okhmhaka
    FémininAge : 32Messages : 31851

    le Jeu 12 Fév 2009 - 0:46

    Super classe l'effet !

    Merci encore pour ce tuto Wink



    avatar
    Benjix
    MasculinAge : 24Messages : 625

    le Jeu 12 Fév 2009 - 11:32

    T'est un pro du flash Shocked

    T'a apprit le flash tout seule?





    -------------------"I'm a Drummer"---------------------------------


    avatar
    GoldenSun2
    MasculinAge : 23Messages : 427

    le Jeu 12 Fév 2009 - 12:11

    En partie mon parrain ma expliquez les base et j'ai terminé par le suite.
    avatar
    ~Alucard~
    MasculinAge : 24Messages : 2124

    le Jeu 12 Fév 2009 - 13:28

    Razz Car sa flotte ? ^^
    Littéraire (c sa fufu hein ?XD)
    j'aurais pas dit 0 graviter ôO, mais "Rotation autour d'un Axe/Objet" Razz
    Mais sa attire moins l'oeil XD
    En tous cas bravo pour le tuto..
    avatar
    GoldenSun2
    MasculinAge : 23Messages : 427

    le Jeu 12 Fév 2009 - 15:41

    Mais c'est pas une rotation, la rotation, je le prévois pour une prochaine fois avec des lignées et tout xD
    avatar
    Kano
    Age : 22Messages : 1288

    le Lun 23 Fév 2009 - 12:37

    J'arrive pas à voir le rendu, mais merci du tuto ^^



    The World

    avatar
    GoldenSun2
    MasculinAge : 23Messages : 427

    le Sam 28 Fév 2009 - 22:20

    Heu kano, c'est normal j'ai des problème avec mon hébergeur, ça devrait revenir
    avatar
    Ashiro Ryuka
    MasculinAge : 26Messages : 33

    le Jeu 26 Nov 2015 - 23:10

    Merci
    Contenu sponsorisé


      La date/heure actuelle est Jeu 14 Déc 2017 - 21:56