2012-05-03 2 views
1

Im в настоящее время программирует простую игру в консольном приложении C++. Я хочу отображать таймер в реальном времени, который начинается с первого действия, которое он выполнял, и останавливает игру, когда таймер достигает предварительно определенного времени, например 5 минут. Я не знаю, как это сделать на C++, поэтому мне было интересно, есть ли у кого-нибудь идеи о том, как это сделать?Создание приуроченной игры в C++

Заранее спасибо, Джон.

+0

Вы можете использовать 'SetTimer' для прекращения игры , – chris

+1

Вам нужно быть более свободным от того, с чем вы столкнулись, отслеживая время или отображая его в режиме реального времени в консоли? –

ответ

2

вы можете использовать gettime() в начале игры, чтобы получить время начала. во время игры, используйте тот же метод и вычитайте из времени начала, чтобы проверить желаемую продолжительность. Вы можете создать отдельный процесс для этой цели

0
#include <ctime>    // ctime is still quite useful 
clock_t start = clock();  // gets number of clock ticks since program start 

clock_t end = 5 * CLOCKS_PER_SEC; // this is 5 seconds * number of ticks per second 

// later, in game loop 
if (clock() - start) > end { // clock() - start returns the current ticks minus the start ticks. we check if that is more than how many we wanted. 
0
#include <stdio.h> 
#include <time.h> 


int main() 
{ 


    unsigned int x_hours=0; 
    unsigned int x_minutes=0; 
    unsigned int x_seconds=0; 
    unsigned int x_milliseconds=0; 
    unsigned int totaltime=0,count_down_time_in_secs=0,time_left=0; 

    clock_t x_startTime,x_countTime; 
    count_down_time_in_secs=10; // 1 minute is 60, 1 hour is 3600 


    x_startTime=clock(); // start clock 
    time_left=count_down_time_in_secs-x_seconds; // update timer 

    while (time_left>0) 
    { 
     x_countTime=clock(); // update timer difference 
     x_milliseconds=x_countTime-x_startTime; 
     x_seconds=(x_milliseconds/(CLOCKS_PER_SEC))-(x_minutes*60); 
     x_minutes=(x_milliseconds/(CLOCKS_PER_SEC))/60; 
     x_hours=x_minutes/60; 




     time_left=count_down_time_in_secs-x_seconds; // subtract to get difference 


     printf("\nYou have %d seconds left ",time_left,count_down_time_in_secs); 
    } 


    printf("\n\n\nTime's out\n\n\n"); 

return 0; 
} 
0

Для тех, кто ищет ответ, вы можете использовать Easylogging ++ отслеживания производительности особенность

См this link; и this и this образцов

(раскрытие, я основной автор этой библиотеки, не пытаюсь рекламировать, но так как эта функция работает, как на этот вопрос так, упоминая это)

Смежные вопросы