IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Animation d'une image


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Achats
    Inscrit en
    Juillet 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Achats

    Informations forums :
    Inscription : Juillet 2018
    Messages : 22
    Par défaut Animation d'une image
    Bonjour,

    J'essaie de comprendre comment ol faut faire pour animer une image et là c'est le drame. J'utilise le langage C avec la SDL2 et le tuto que j'ai trouvé l'explique en C++ (je crois) avec la SDL1. J'avoue que je suis perdu, je n'arrive pas à faire la transition entre les deux. Est ce qu'il y a un tuto qui l'explique pour le C quelque part ou auriez vous un code (le plus simple possible) d'animation d'une image que je puisse essayer de comprendre comment c'est fait. Ou peut être un début de piste.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Salut,

    le secret c'est qu'une image ne s'anime pas. Ce qui fait une animation c'est la succession d'images. Dessine plusieurs etapes du mouvement et passe de l'une a l'autre toutes les X frames.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre averti
    Homme Profil pro
    Achats
    Inscrit en
    Juillet 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Achats

    Informations forums :
    Inscription : Juillet 2018
    Messages : 22
    Par défaut
    Oui j'ai vu ça, si je ne me trompe pas, dans le cas ou on prend une image qui regroupe la décomposition du mouvement (comme l'image du chat sur le tuto du site),
    Nom : cat.png
Affichages : 1978
Taille : 10,9 Ko
    il faut la traiter comme un tableau et allé chercher l'image dans le tableau qui correspond à ce qu'on veut et ensuite les afficher au bon moment. C'est la théorie, c'est pour la mise en pratique que je comprends pas.

  4. #4
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Un peu difficile de t'aider sans dire ce qui te bloque , deja si tu a un fps constant , ensuite il te suffit juste d'afficher un bout de l'image et de le faire défiler toute les x frames

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    Citation Envoyé par Alma9 Voir le message
    il faut la traiter comme un tableau et allé chercher l'image dans le tableau qui correspond à ce qu'on veut et ensuite les afficher au bon moment. C'est la théorie, c'est pour la mise en pratique que je comprends pas.
    lorsqu'on fait un programme informatique c'est comme un problème de mathématiques il faut au besoin poser le problème sur papier et avoir au besoin de la méthode .

    Donc pour créer une animation avec 6 images "cadres" ( frames en anglais ) on va procéder par ordre
    il y a deux lignes de 3 personnages
    il faut déclarer un tableau de type SDL_RECT et ensuite faire une boucle qui lise la première ligne
    mettons que chaque chat soit de taille 90*130 pixels ( j'ai fait cette mesure avec un Paint Shop Pro logiciel de dessin)
    Cette boucle sera du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    int i;
    int x;
    int y;
    SDL_RECT tableau_rectangles[6];
    int pointeur_frame=0;
    ( for i=0;i<3;i++)
    {
    x=i*90;
    y=0;
    tableau_rectangles[pointeur_frame].x=x;
    tableau_rectangles[pointeur_frame].y=y;
    tableau_rectangles[pointeur_frame].w=90;
    tableau_rectangles[pointeur_frame].h=130;
    }
    // on recommence pour la deuxième ligne
    ( for i=0;i<3;i++)
    {
    x=i*90;
    y=130;
    tableau_rectangles[pointeur_frame].x=x;
    tableau_rectangles[pointeur_frame].y=y;
    tableau_rectangles[pointeur_frame].w=90;
    tableau_rectangles[pointeur_frame].h=130;
    pointeur_frame++;
    }
     
    }
    j'ai écris cela vite fait bien fait on peut faire deux boucles imbriquées
    Donc là on a initialisé les "frames"
    ensuite il faut déclarer un Timer avec SDl_AddTimer() voir la doc sur le site de la SDL
    ensuite appeler SDL_GetTicks voir la doc il y a un excellent exemple ;
    il faut gérer le delta entre deux mesures de temps
    Lorsqu'on passe le delta de temps il faut afficher le SDL_RECT mais en gérant avec un pointeur d'animation et en l'incrémentant à chaque fois
    Faire attention de ne pas dépasser le tableau; donc ici le pointeur =6 il faut le remettre à zéro

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Je suis actuellement sur l'écriture d'un article sur ce sujet. Il n'est pas finalisé, disons que je propose ici une version alpha pour vous débloquer. N'hésitez pas à m'en faire des retours par MP.
    Sinon, pour le reste, je pense que tout a été dit dans la discussion, donc, s'il vous reste des problèmes, il faudra nous les expliquer plus précisément.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre averti
    Homme Profil pro
    Achats
    Inscrit en
    Juillet 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Achats

    Informations forums :
    Inscription : Juillet 2018
    Messages : 22
    Par défaut
    Super, il y a tout ce qu'il faut pour que je comprenne. Je vais me concentrer la dessus et j'espère m'en sortir (ça risque de prendre un moment ). Un grand merci à vous tous.

Discussions similaires

  1. [JS] Peut on connaitre le temps d'animation d'une image au format gif ?
    Par minimolo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/12/2006, 10h44
  2. Animation d'une image, translation, rotation en javascript ?
    Par Ptit_Mouss dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/09/2006, 11h21
  3. animation d'une image
    Par robocop2776 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/01/2006, 09h17
  4. Animation d'une image / CSS
    Par Trunks dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/12/2005, 15h58
  5. Réponses: 2
    Dernier message: 26/07/2005, 21h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo