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 :

boucle pour le cycle d'exécution d'une tetris


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut boucle pour le cycle d'exécution d'une tetris
    salut tous le monde,

    j'ai bien avancé dans la programmation de ma tetris.
    mais je me suis retarder par un problème qui est le timer:

    il me faux une boucle d'exécution contenant les déplacements des pièces

    cette boucle doit être dépandante du niveau du jeux( level )

    ---------------------------------------------------------------------------

    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
    while(!done) 
    {
     
            while(SDL_PollEvent(&event))
            {
                switch(event.type) // boucle de fermeture de la fenêtre 
                {
                    case SDL_QUIT:
                    done = true;
                    break;
                }
            }
     
    ...
    }
    -------------------------------------------------------------------------

    avec cette boucle la fréquence est trés élevé.

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Qu'est-ce qui t'empêche de créer un timer ?

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut
    ce n'est pas accè facille pour moi

    j'ai utiliser quelque boucle éxistant dans le tutorial ou dans le faq
    mais mon programme ce plante.

    ma question est es-que la boucle principale sera elle même ou il faut introduire le timer in;

    c'est peut être une question bête pour vous, mais je suis débutant est j'éssaye de comprendre

  4. #4
    Membre éclairé Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par défaut
    Si tu as un probleme avec les timers , Utilises SDL_GetTicks() et SDL_Delay( ).

  5. #5
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par guitariste Voir le message
    Si tu as un probleme avec les timers , Utilises SDL_GetTicks() et SDL_Delay( ).
    Pas de SDL_Delay, tu vas arrêter tout le programme...

    Tu utilises SDL_GetTicks et tu fais quelque chose comme ceci :

    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
     
    int tempsdedescente = 1000; /* 1 descente par seconde */
    int last = SDL_GetTicks();
    int now;
     
    ...
     
    while(!done) 
    {
     
            while(SDL_PollEvent(&event))
            {
                switch(event.type) // boucle de fermeture de la fenêtre 
                {
                    case SDL_QUIT:
                    done = true;
                    break;
                }
            }
     
            now = SDL_GetTicks();
            if(now > last + tempsdedescente) { 
                    /* On descend */
                    last = now;
            }
    ...
    }
    Certains préférent aussi faire un calcul pour savoir combien de tempsdedescente y a entre now et last afin de mieux calculer la descente. Mais pour toi, ceci devrait suffire.

    Jc

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/10/2014, 16h47
  2. [VB.NET] Boucle pour faire évoluer le contenu d'une liste
    Par lecknaat dans le forum Débuter
    Réponses: 4
    Dernier message: 25/06/2013, 11h09
  3. Réponses: 2
    Dernier message: 17/05/2012, 01h18
  4. Réponses: 2
    Dernier message: 30/04/2012, 22h58
  5. Réponses: 7
    Dernier message: 10/02/2005, 13h44

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