CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

faire un compte a rebour

extasy89
extasy89
Niveau 6
15 juin 2005 à 16:00:33

slt a tous,

pour le jeu que je fait ( en c++), le joueur a un temps limite pour répondre. j´ai donc cherché comment faire un compte a rebour ( ou un chronometre) en décortiquant le code source de lezardware ( fait par vengeur) mais je n´ai pas compris comment il faisait. j´ai donc ete voir de la doc sur

http://sdldoc.csn.ul.ie/sdlkey.php

mais je ne comprend pas tres bien

est ce que quelqu´un qui a deja

extasy89
extasy89
Niveau 6
15 juin 2005 à 16:03:36

. .. qui en a deja fait un pourrait m´aider?

un tout grand merci d´avance

dynoplasmma
dynoplasmma
Niveau 9
15 juin 2005 à 16:09:36

avec un for.

Vengeur41
Vengeur41
Niveau 10
15 juin 2005 à 16:24:05

Alors jtexplique :

On a le temps du compte a rebours ( mettons 15 secondes ) :

int tempscompterebours = 15;

La SDL a une fonction nous permettant de connaître le temps écoulé depuis le début du jeu en millisecondes:

int timestart = SDL_GetTicks();

Ensuite, dans ta boucle, tu recupere continuellement le temps restant :

/ *Avant la boucle*/
int nowtime;

. ..
/ *pendant l
/ *On recupere la différence de temps */
nowtime = SDL_GetTicks

Vengeur41
Vengeur41
Niveau 10
15 juin 2005 à 16:27:44

Alors jtexplique :

On a le temps du compte a rebours ( mettons 15 secondes ) :

int tempscompterebours = 15;

La SDL a une fonction nous permettant de connaître le temps écoulé depuis le début du jeu en millisecondes:

int timestart = SDL_GetTicks();

Ensuite, dans ta boucle, tu recupere continuellement le temps restant :

/ *Avant la boucle*/
int nowtime, timetest;

. ..
/ *pendant la boucle */
/ *On recupere la différence de temps */
nowtime = SDL_GetTicks()-timestart;
/ *On teste si on est dans le compte à rebours , attention aux conversions secondes/millisecondes */
timetest = ( int)tempscompterebours-(nowtime/1000);
if ( timetest>0)
{
/ *On est tjrs dans le compte à rebours */
}
else
{
/ *Temps ecoule*/
}

Le truc à ne pas faire : utiliser les timers tout prets de la sdl...

extasy89
extasy89
Niveau 6
15 juin 2005 à 17:17:51

ok j´ai compris le principe et ça a l´air de fonctionner mais le seul probleme est que quand j´affiche " timetest" ( pour que l´utilisateur puisse voir combien de temps il lui reste) il commence toujours le compte a rebour a 24450 secondes ce qui ne m´arrange pas tres fort car mois je voudrais 15 secondes.

N´y aurait il pas quelque chose a initialiser?
car j´ai suivi a la lettre ce que tu m´a dit

merci beaucoups d´avance

extasy89
extasy89
Niveau 6
15 juin 2005 à 17:23:00

nn je rectifie, en fait meme quand je quitte le programme, il continue a compter le temps si bien que des que je lance le programme il m´affiche a chaque fois un temps plus long

n´y a t´il pas un moyen des ré-initialiser le temps?

merci d´avance

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware