Partage
  • Partager sur Facebook
  • Partager sur Twitter

Apprendre à créer des sprites

En langage C uniquement.

    1 décembre 2005 à 21:11:03

    J'ai un petit carré pour un jeu qui se déplace, j'aimerais mettre une image de fond mais il me faudrait un sprite puisque j'efface ce carré noir en faisant suivre un carré blanc.
    J'aimerais donc apprendrele principe pour mettre un sprite dans un programme en C. (pas C++ que je ne connais pas et que je ne veux pas utiliser)

    EDIT : J'ai une boucle dans mon programme et de manière à ce que le carré ne se déplace pas vitesse grand V, j'utilise nsleep pour qu'il attende un seconde avant de répéter la boucle, le problème est que le temps d'attente dépend des processeurs...
    J'aimerais donc utiliser la fonction time, comment puis je faire pour avoir le même effet qu'avec nsleep?
    • Partager sur Facebook
    • Partager sur Twitter
      1 décembre 2005 à 22:04:01

      Su tu précisais quelle lib... SDL? Opengl?
      • Partager sur Facebook
      • Partager sur Twitter
        1 décembre 2005 à 23:30:51

        arf, exact, j'utilise une lib très peue connue (lib perso de qqun qui se contente de seulement une 20 aines de fonctions de bases : rectangles, cercles, charger image, ecran virtuel etc)
        Je voudrais en faite connaitre le principe du sprite pour pouvoir adapter en fonction de ce que j'ai...
        • Partager sur Facebook
        • Partager sur Twitter
          2 décembre 2005 à 11:37:30

          Tu dois avoir une fonction de type GetTickCount() sur n'importe quel OS. Ca te donne le nombre de "tick" (selon l'OS, la durée d'un tick varie), depuis le démarrage du système.
          Si tu veux que ton programme se mettent en "pause" sans pour autant paralysé l'exécution du reste, tu peux faire un truc du style :

          void fonction_a_interrompre(void);


          int main(void); // c du vite fait c'est pas un void normalement
          {
             int iNombreTick = GetTickCount(); //on suppose qu'un tick = 1ms

             while(1)
             {
                if(iNombreTick + 1000 >= GetTickCount()) //Est-ce qu'1s est passé ?
                {
                   fonction_a_interrompre();
                   iNombreTick = GetTickCount(); //On remet à jour pour le prochain cycle d'1s
                }
                else
                {
                   //ici on met le reste du programme qui doit toujours s'executer sans dépendre du cycle
                }
             }

          return 0;
          }


          Si tu met une fonction sleep() quelque part, le programme se fige sur cette fonction pendant le temps indiqué, ce qui est pas glop
          • Partager sur Facebook
          • Partager sur Twitter

          Apprendre à créer des sprites

          × 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