TEMPO LINUX C++

di il
1 risposte

TEMPO LINUX C++

Ciao a tutti sto scrivendo un programma in c++, un gioco per la precisione e mi piacerebbe inserire un orologio all'interno dell'interfaccia utente che mi faccia vedere appunto il tempo trascorso dall'izio del gioco.
Adesso la miglior cosa da fare che ho trovato e' questa:

time_t start,end;
time (&start);
time (&end);
tempo = difftime (end,start);
cout << tempo;	//tempo espresso in secondi !!!
Ma visualizza il tempo di gioco solo alla fine invece io vorrei una cosa che fosse in tempo reale (cioe un cronometro fisso sullo schermo)....non so se mi spiego!!!

Grazie

1 Risposte

  • Re: TEMPO LINUX C++

    Quando hai un programma non bloccante è sufficiente accedere alla tua funzione di visualizzazione timer nel giro di elaborazione.
    
    
    inizio
    
    giro
    {
      elaborazione non bloccante  --->  mostra il timer
    }
    
    fine
    
    
    Quando hai un programma bloccante devi utilizzare i segnali. SIGALRM esegue azione/funzione ad intervalli regolari di tempo.
    
    ---cut---
    void my_timer (int sig_num)
    {
      --->  mostra il timer
    }
    ---cut---
    
    inizio ---> signal (SIGALRM, my_timer);
    
    giro
    {
      elaborazione bloccante
    }
    
    fine ---> signal(SIGALRM, SIG_DFL); // SIGNAL_DEFAULT
    
    
    Il tuo start potrebbe essere static o global secondo come intendi gestirlo; end e tempo local

    A questo punto è importate andarsi a posizionare sullo schermo/finestra nello stesso punto prima della scrittura.

    ~Max
Devi accedere o registrarti per scrivere nel forum
1 risposte