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

Développement 2D, 3D et Jeux Discussion :

[C] déplacement des sprites: comment faire?


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 58
    Points
    58
    Par défaut [C] déplacement des sprites: comment faire?
    salut

    je cherche un algorithme pour le déplacement des éléments d'un jeu
    je ne sais pas exactement comment on s'y prend

    il faut que les sprites bougent mais tous en meme temps et non pas un a la fois...

    bien, dans la logique, c'est un a la fois mais ce que je veux c'est que l'animation de tous les elements paraisse bouger en meme temps
    bref, quelle est la meilleure technique pour un jeu en deux dimensions ?
    (sachant que les sprites sont susceptibles de disparaitre lorsque un missile ou autre touche un autre sprite bref ...compliqué, sorry)
    je pensais a une listede positions et la liste change quand un sprite est detruit et lorsque qu'un nouveau sprite apparait a l'ecran...

    merci pour vos réponses

  2. #2
    Membre régulier Avatar de siegfried64
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 78
    Points : 98
    Points
    98
    Par défaut
    je te rappelle que si tu fait bouger un sprite, tout ca est fait juste en memoire et rien n est encore transmis a l ecran, ainsi le joueur(utilisateur) ne peux voir le sprite se deplacer qu apres le rafrichissement de l'ecran.


    si on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bouger(sprite1);  /*le deplacement est fait en memoire*/
    bouger(sprite2);           /*toujours en memoire, le joueur n a rien encore vu*/
    bouger(sprite3);          /*la meme chose */
    SDL_Flip(screen);        /*l ecran qui etai en memoire est echangé avec celle courrante, toute les deplacement sont simultanés/
    j'espere que t a compris
    Pour obtenir des réponses, rien n’est plus naturel que de poser des questions.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Points : 58
    Points
    58
    Par défaut
    oui j'ai compris ce que tu m'as dit

    mais pour la gestion des elements , il faut un tableau fixe?
    ou comment je fais si je veux rajouter un sprite en cours de jeux?

    sans compter l'animation du sprite en meme temps que son deplacement

    l'ordinateur ne sait pas a l'avance combien de fois j'appuie sur la touche feu
    pour envoyer un missile...

  4. #4
    Membre régulier Avatar de siegfried64
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 78
    Points : 98
    Points
    98
    Par défaut
    il faudra charger tes sprites des le debut, tu les blite apres sur l ecran quand tu en a besoin.
    sinon pour ton autre question, tu utiliser la gestion des evenements pour savoir combien de fois l utilisateur a appuiyé sur un button, su tu utilise SDL_WaitEvent() le probleme ne se pose pas vu qu a chaque click correspond un fonction specifique que tu a codé, si tu utilise SDL_PollEvent c'est une autre chose.
    La evidament je suppose que vous travaillez avec la librerie SDL
    Pour obtenir des réponses, rien n’est plus naturel que de poser des questions.

  5. #5
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par SimpleMe Voir le message
    je pensais a une listede positions et la liste change quand un sprite est detruit et lorsque qu'un nouveau sprite apparait a l'ecran...
    merci pour vos réponses
    On a déjà répondu à ce genre de question, faire des recherches.
    Oui basiquement il faut une liste avec des sprites ayant une méthode :: Move par exemple qui met à jour les coordonnées du sprite.
    Dans le main tous les x ms on parcourt la liste et on appelle la méthode :: Move de chaque sprite.
    Il vaut mieux gérer cela avec un simple booléen également bool EstEnMouvement.
    Regarder dans les contributions du site.

    Tu peux prendre un algorithme "prédictif" c.a.d. mémoriser les coordonnées du sprite dans un stl::vector par exemple .
    Cela peut servir dans les jeux genre "point and click"


    (sachant que les sprites sont susceptibles de disparaitre lorsque un missile ou autre touche un autre sprite bref ...compliqué, sorry)
    Non y'a rien de compliqué c'est le basique de la programmation de JV 2d; il suffit de gérer cela avec des points de vie par exemple pour chaque sprite.
    Si les pts de vie sont nuls alors enlever sprite

Discussions similaires

  1. Gérer des instruments, comment faire ?
    Par ertty dans le forum SAP
    Réponses: 1
    Dernier message: 07/06/2011, 11h58
  2. [XL-2003] je voulais faire la somme des nombre comment faire ?
    Par aminepop dans le forum Excel
    Réponses: 13
    Dernier message: 03/08/2010, 21h54
  3. ListBox (ou ListView)avec des colonnes, comment faire ?
    Par rudylar dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/05/2008, 19h43
  4. [Gestion des Exceptions] Comment faire ?
    Par caballero dans le forum Services Web
    Réponses: 3
    Dernier message: 21/02/2008, 09h39
  5. Réponses: 1
    Dernier message: 09/06/2006, 10h42

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