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

 C++ Discussion :

Problème d'affichage de mon Zelda


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Problème d'affichage de mon Zelda
    Bonjour/Bonsoir,

    Voila je vous pose le décor, en cours nous avons un mini projet de jeu Zelda pour illustré ce que l'on apprend, pour cela nous utilisons la librairie SDL (sans apprendre en profondeur le SDL).
    Et nous avons vus comment déplacer le Zelda case par case et Pour le fun j'aimerais faire une animation de déplacement.
    Mais mon code exécute effectivement 2images pour l'animation mais pour faire simple mon perso se déplace à gauche reviens d'une demi case vers la droite puis retourne sur la case de gauche (pour une obscure raison qui m'échappe).

    Voici le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    else if(posPerso.orientation=='G'){
                AfficherImage(CHEMIN_PERSO,120,0,TILE,TILE,(posPerso.x*64+32),posPerso.y*64);       /** Affichage Perso 32px plus a loin **/
                MajEcran();
                AfficherImage(CHEMIN_OVERWORLD,140,4,TILE,TILE,(posPerso.x*64+32),posPerso.y*64);   /** Affichage du sol pour effacer le perso **/
                Sleep(100);
                AfficherImage(CHEMIN_PERSO,120,120,TILE,TILE,posPerso.x*64,posPerso.y*64);
            }
     
            MajEcran(); /** On affiche le tout **/
    Pour votre info la fonction AfficherImage se comporte comme ceci :
    AfficherImage([cheminDeL'image],[pixelXDeDebutDeSprite],[pixelYDeDebutDeSprite],[TailleEnXDeL'image],[TailleEnYDeL'image],[PositionXduPerso],[PositionYduPerso]);
    Les images font 64*64pixels.

    Voilà si vous avez besoin de plus d'infos n'hésitez pas

    Merci de votre aide.

    Stelper

    Ps: Je demande pas un code tout fait juste savoir pourquoi mon perso fait un allé retour non demandé ^^

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Tu as oublié de changer la position du personnage. entre les deux étapes.
    Ton comportement décrit correspond précisément à celui que tu as codé.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Non car le 2eme AfficherImage permet d'éffacer le zelda se trouvant entre les 2 cases et mettre du sol a la place ou alors je ne vois pas de quel position tu parle (je déplace que le X pas le Y pour le moment)


    OK!!!

    Désolé j'ai post trop tôt :'( :'(
    3jours que je bloque dessus et je viens d'y pensé 5min après le post #Boulet.

    En fait ça viens de mon waitEvent qui détecte d’appuis et le relâchement de la touche comme 2actions et non une seul donc il exécute 2fois le if() :/
    Maintenant il ne reste plus qu'a trouvé comment fixé le tout ^^

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    choisir d'avancer tant que le bouton est enfoncé, et fixer le framerate.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Il y a une fonction particulière que je peux aller consulter pour cela? ou c'est dans le waitEvent que je dois chercher?
    Et c'est quoi un Framerate?

  6. #6
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 965
    Points
    32 965
    Billets dans le blog
    4
    Par défaut
    Tu devrais vite aller jeter un oeil au forum 2D/3D/Jeux https://jeux.developpez.com/
    Tu y trouveras un grand nombre de tutos, exemples etc sur comment faire ça bien.
    Ton simple code présenté a déjà d'énormes problèmes, sans parler qu'il mériterait un peu d'architecture.
    - la position non mise à jour ? +32, +64 ?
    - sleep en plein milieu : jamais

    http://alexandre-laurent.developpez....boucle-de-jeu/
    http://loka.developpez.com/tutoriel/sdl/
    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.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Pour le sleep je suis obligé d'utilisé cela (je suis en 1er année) si je commence à utilisé des choses que l'on a pas vus au cours je vais me faire ramassé :/

    Mais je prend note et je vais lire ça de suite merci de votre aide

  8. #8
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    En ce cas, demande à ton professeur comment faire proprement.
    Que ferais-tu si tu as deux animations à gérer?

    Et plein et en nombre variable? parce qu'il ne faut pas oublier les monstres, le boomerang, les boules de feu, les poules, les drapeaux, les nuages, l'eau, etc.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'affichage dans mon code
    Par naima2005 dans le forum Applets
    Réponses: 3
    Dernier message: 02/12/2007, 11h52
  2. [EasyPHP] Problème d'affichage avec mon code PHP
    Par LegioKilt dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 24/11/2007, 04h13
  3. Problème d'affichage de mon abcisse
    Par Tomstom dans le forum iReport
    Réponses: 0
    Dernier message: 23/08/2007, 16h27
  4. Problème d'affichage dans mon état
    Par gontrand16 dans le forum Access
    Réponses: 6
    Dernier message: 05/07/2006, 20h29
  5. Problème d'affichage avec mon BBCode
    Par magic33 dans le forum Langage
    Réponses: 4
    Dernier message: 01/05/2006, 16h30

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