Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme jeux

    27 février 2007 à 19:47:08

    bonjour a vous zero ou plus tot bonsoir. Je viens a vouq car je rencontre un probleme dans la concption de mon jeu. Mon probleme est le suivant. J'ai un Wait event cependant je veux rajouter une animation.Je covertie wait event en Poll event cependant la vitesse de mon personnage est beaucoup trop rapide et lorsque je laisse en Wait event l'animation ne s'anime que lorsque mon personnage bouge (ce qui ne sert a rien.)Ma question est la suivante est il possible de baisser la vitesse de deplacement de mon poll event ou alors comment fere pour que l'animaation se fasse normalement et que le deplacement soit aussi normal merci.
    • Partager sur Facebook
    • Partager sur Twitter
      27 février 2007 à 19:52:59

      Base-toi sur le temps (SDL_GetTicks) pour tes animations et tes déplacements.
      • Partager sur Facebook
      • Partager sur Twitter
        27 février 2007 à 20:16:05

        je c'est mais pour ne pas bloquer le deplacement de l'animation je met pollevent cependant la vitesse du perso est beaucoup trop rapide.il y a t il une solution pour résoudre ce probleme?
        • Partager sur Facebook
        • Partager sur Twitter
          27 février 2007 à 21:25:35

          Vas voir du coté des timers SDL si tu veux garder ton waitEvent.
          • Partager sur Facebook
          • Partager sur Twitter
            28 février 2007 à 20:02:57

            je l'ai fait avec le timers mais le probleme persiste avec wait event le champignon ne se deplace que lorsque le perso se deplace et avec poll event le champignon se deplace normalement mais le personnage est beaucoup trop rapide
            • Partager sur Facebook
            • Partager sur Twitter
              28 février 2007 à 20:41:38

              remram44 t'as donné la réponse ... Si tu veux plus de précisions, le cours de M@téo21 en parle.
              • Partager sur Facebook
              • Partager sur Twitter
                1 mars 2007 à 19:11:20

                je le sais qu'il faut utiliser SDL_GetTicks mais le probleme reste le meme pourriez vous me donner une explication claire merci.
                PS(peut etre ai-je mal compris quelque chause mais je ne vois pas)
                • Partager sur Facebook
                • Partager sur Twitter
                  1 mars 2007 à 21:24:49

                  Si tu mets des flip dans ton timer tu verras ton anmimation et le personnage sera toujours bloqué par le wait event...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 mars 2007 à 23:45:45

                    Citation : mournhold

                    je le sais qu'il faut utiliser SDL_GetTicks mais le probleme reste le meme pourriez vous me donner une explication claire merci.
                    PS(peut etre ai-je mal compris quelque chause mais je ne vois pas)



                    Citation : flioux

                    je te donne un lien, tout y est :
                    http://www.siteduzero.com/tuto-3-6996-1-maitrisez-le-temps.html#ss_part_1

                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 mars 2007 à 23:56:23

                      Dans le tutorial, si tu reste dans un jeu en dévelloppement je te conseille de mettre ça dans ta boucle principale ou ta boucle d'affichage de l'animation:



                              tempsActuel = SDL_GetTicks();
                              if (tempsActuel - tempsPrecedent > 30)
                              {
                                  tempsPrecedent = tempsActuel;
                              }
                              else /* Si ça fait moins de 30ms depuis le dernier tour de boucle, on endort le programme le temps qu'il faut */
                              {
                                  SDL_Delay(30 - (tempsActuel - tempsPrecedent));
                              }



                      Ce code va te permettre de maintenir un temps de 30ms entre chaque tour de boucle principale donc 1/30 image par seconde.

                      Info: ,les variables tempsActuel et tempsPrecedent sont des int ou long. pour modifier le temps, modifie le 30 (en ms) je te conseille d'un faire une valeur "#define".
                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 mars 2007 à 0:08:13

                        Avec ça il aura toujours le même problème, soit il garde un wait event et son anim s'affiche au rythme de son bonhomme soit il met pollevent et son perso sera rapide (jusqu'à 1 déplacement toutes les 30ms)...
                        Le plus efficace reste à mon avis les timers...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 mars 2007 à 19:32:03

                          oui j'ai tenter avec ta soluce wi4 mais sa ne change rien. Caribou87 de quelle aniere veut tu que j'utilise les timer. Je vien de reregarder le tuto de matheo et je ne vois pas.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            3 mars 2007 à 1:40:54

                            Bah alors si tu ne veux pas que ton déplacement ait lieu à chaque itération de la boucle, alors programme un truc du genre :

                            Citation : Algorithme

                            Création d'une variable a à 0 (tu mettras le nom qui te convient le mieux)

                            Début Boucle

                            Si a est égal à 0 => Déplacement

                            Incrémentation de a.
                            Si a est égal à 4 => On remet a à 0

                            Fin Boucle



                            De cette manière, tu pourras contrôler le nombre d'itérations de ta boucle qu'il devra y avoir entre chaque déplacement en modifiant le nombre de "Si a est égal à 4". En sachant que plus il sera grand, plus lent sera le déplacement.


                            En espérant avoir pu t'aider, si tu ne comprends pas un truc, dis-le moi ! ;)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              3 mars 2007 à 10:47:43

                              j'ai effectivement un probleme je n'arrive pas a mettre en place ton algorythme.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 mars 2007 à 21:58:39

                                Citation : mournhold

                                Caribou87 de quelle maniere veut tu que j'utilise les timer. Je vien de reregarder le tuto de matheo et je ne vois pas.



                                Par exemple, tu lances un timer en mettant en paramètre un tableau avec les surfaces de ton animation et tu blites toutes tes surfaces une par une (une à chaque appel du timer) grâce à une variable statique incrémentée à chaque appel du timer et dans ta boucle principale (souvent dans le main ou ta fonction principale), à l'aide d'une variable de temps définie à l'aide de SDL_GetTicks() tu supprimes le timer une fois toutes les surfaces blittées : si tu as 4 surfaces blittées toutes les 50ms, tu supprimes ton timer au bout de 200ms (ou un peu plus pour laisser une marge d'erreur due à la vitesse du processeur).

                                Si t'as des questions quand à cette technique je suis là, mais explicites bien ce que tu ne comprends pas stp...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  7 mars 2007 à 17:49:27

                                  c'est bon j'ai reussi a reguler le deplacement de mario merci pour votre aide. Maintenant je suis exposer a un autre probleme je voudrais placer un champignon sur mon editeur et qu'il soit annimer sur le jeu.Lorsque j'essaye sur l'editeur sa marche niquel mais sur le jeu le champignon n'est pas a la bonne place. De plus je n'arrive pas a gerez les colision de l'animations. Pourriez vous me donnez la marche a suivre pour parvenir au resultat attendu? merci de votre aide
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    29 juillet 2007 à 18:18:05

                                    Tu veux qu'on fasse tout ton code aussi ?! :lol:

                                    Pour les colisions je te conseille de travailler par Case comme dans le TP de Mario Sokoban. Ou si tu as ton monde défini (tu sais ou son les murs etc...) tu peut regarder (avec Paint par exemple) où se situe les murs. Tu regardes les coordonnées et tu dit que "Si Mario arrive sur ces coordonnées il ne peut pas aller plus loin".

                                    Ce n'est pas forcement la meilleure idée mais je débute aussi en SDL :p
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      29 juillet 2007 à 18:38:40

                                      Si tu tient à garder le PollEvent, met un SDL_Delay(nb en millisecondes), même si c'est moche.
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      probleme jeux

                                      × 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