Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher le sprites suivant

    28 juillet 2007 à 19:37:17

    Bonjour,

    J'ai encore un problème ^^

    En faite je voudrais pouvoir jouer l'animation de mes sprites les uns après les autres.

    J'ai une variable : SDL_Rect positionSpritesBas[4]; qui contient mes 4 sprites qui sont dirigés vers le bas.
    Ce que je veux savoir, c'est que quand on a positionSpritesBas[0], et que je veux que mes sprites s'affiche l'un après l'autre au bout de 100 milliseconde, comment je fais (une fois que j'ai testé si sa fait plus de 100 millisecondes) pour afficher le sprite suivant ?

    Sa peut parraitre bête, mais en gros comment je passe de positionSpritesBas[0] à positionSpritesBas[1] ? (est-ce que le seul moyen c'est d'utiliser une boucle ?)
    En gros, est-ce que je peux faire un truc du style :

    positionSpritesBas[imageActuelle + 1];
     


    A+ :)
    • Partager sur Facebook
    • Partager sur Twitter
      28 juillet 2007 à 20:41:40

      Comment tu fais pour stocker des sprites dans des SDL_Rect?

      Sinon je comprend pas trop la question, montre ton code ça sera plus simple.
      • Partager sur Facebook
      • Partager sur Twitter
        28 juillet 2007 à 20:46:43

        bhé, je pense qu'a moins d'écrire :
        positionSpritesBas[0]
        puis
        positionSpritesBas[1]
        ...
        positionSpritesBas[2]
        ...
        positionSpritesBas[3]

        tu dois faire une boucle (à confirmer...). En plus, c'est assez simple à faire et si tu dois afficher 100 sprites ou si tu veux faire un code simple et concis c'est l'option à choisir ;) .
        • Partager sur Facebook
        • Partager sur Twitter
          28 juillet 2007 à 22:07:20

          En faite je veux que à chaque fois que le temps dépasse 100 milliseconde, on montre l'image suivante (pour donner l'illusion que link marche vraiment) !

          A+
          • Partager sur Facebook
          • Partager sur Twitter
            28 juillet 2007 à 22:40:14

            Mais je me répète, tu n'as que 2 solutions (enfin je pense) : soit tu fais une boucle, soit tu "imite" une boucle : c-a-d que tu va réécrire ton code dès que 100 ms sont passées mais c'est plus chiant à faire, moins joli, et pas du tout pratique (si tu rajoute un sprite c'est mort) et plus long ;)

            Je m'égare peut-être, si ta question ne portait pas sur ce que je viens de te dire, elle aurait peut-être plus une réponse maintenant :
            Mais pour ta question, tu as le droit de faire
            positionSpritesBas[imageActuelle + 1];


            de la même manière que tu aurais pu écrire :
            printf("l'image qui va s'afficher est la numero %ld",imageActuelle + 1);

            Tout ces trucs dans le genre sont possibles (et utilisable)

            en éperant t'avoir éclaircis ;) .
            • Partager sur Facebook
            • Partager sur Twitter
              29 juillet 2007 à 9:28:02

              Salut,

              Merci de ta réponse !

              J'ai encore un soucis, quand j'essaie de blitter par exemple la deuxième image de Link, je fais :

              SDL_BlitSurface(chipset,positionSpritesBas[1],ecran,&positionSpritesBas);


              Mais il me met ces deux erreur :

              Error:incompatible type for argument 2 of 'SDL_Upperblit'
              Warning: passing arg 4 for 'SDL_Upperblit' from incompatible pointer type


              Alors que si j'enlève les crochet de positionSpritesBas en faisant comme sa :

              SDL_BlitSurface(chipset,positionSpritesBas,ecran,&positionSpritesBas);


              Sa marche (il me blit le premier link !)

              C'est bizard car avant sa marchait :s

              A+
              • Partager sur Facebook
              • Partager sur Twitter
                29 juillet 2007 à 9:34:07

                il attendscune adresse ... donc &positionSpritesBas(1)
                (j'ai pas de crochets sur mon clavier ^^)
                • Partager sur Facebook
                • Partager sur Twitter
                  29 juillet 2007 à 12:18:55

                  Moi j'aurais fait une seule position et un tableau de surface. Et tu fais défilé ton tableau toutes les 100 millisecondes.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Afficher le sprites suivant

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown