Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] wyświetlanie obiektu przez 2 sekundy

Ostatnio zmodyfikowano 2012-12-15 17:33
Autor Wiadomość
tompibed
Temat założony przez niniejszego użytkownika
[C++] wyświetlanie obiektu przez 2 sekundy
» 2012-12-15 16:57:51
Witam, mam problem z konstuowaniem pomiaru czasu.
Chciałbym zrobić, aby dany obiekt wyświetlał mi się przez 2 sekundy po czym gasł na 3 sekundy i od nowa.

Napisałem póki co pobieranie czasu z systemu, lecz jak mówię nie mam pojęcia jak zrobić taki pomiar.
Prosze bardzo o pomoc
C/C++
{
   
    SYSTEMTIME time;
    GetLocalTime( & time );
   
    if( time.wSecond % 2 == 0 )
    { Sleep( 2000 );
        al_draw_filled_circle( znak.x, znak.y + 28, 13, al_map_rgb( 0, 255, 0 ) );
    }
    else al_draw_filled_circle( znak.x, znak.y - 28, 13, al_map_rgb( 255, 0, 0 ) );
   
}

Zrobiłem wyświetlanie pierwszego obiektu gdy sekunda jest podzielna przez 2.
Proszę wybaczyć, bo pewnie się wydaje to proste zadnaie, lecz ja jak mówię nie mam pojęcia, niestety.
P-71100
jsc
» 2012-12-15 17:04:54
Proponuję zrobić skalę gaśnięcia i procedurę przesuwającej się po niej o n pozycji. A na końcu uruchamiać ją w pętli co sleep (3000 / n).
P-71101
tompibed
Temat założony przez niniejszego użytkownika
» 2012-12-15 17:06:08
Wybaczcie, zapomniałem dodać, że Sleep() zacina mi całą aplikację, czyli musi to być bez Sleep()
P-71102
jsc
» 2012-12-15 17:13:03
No to masz 2 opcje, napisać program wielowątkowo, albo wziąć jakąś bibliotekę np. WinAPI, GTK czy inne graficzne) z obsługą zdarzeń zegara
P-71104
Savail
» 2012-12-15 17:24:26
Możesz użyć funkcji timeGetTime() np. w ten sposób:
C/C++
bool draw = true;
DWORD start = timeGetTime();
while( draw )
{
    if( timeGetTime() - start < 2000 )
    {
        al_draw_filled_circle( znak.x, znak.y + 28, 13, al_map_rgb( 0, 255, 0 ) );
    }
    else if( timeGetTime() - start > 5000 )
         start = timeGetTime();
   
}
P-71107
jsc
» 2012-12-15 17:28:32
@Up
Miłoby było, żebyś napisał, że to funkcja z WinApi, bo nie każdy się domyśli.
P-71109
tompibed
Temat założony przez niniejszego użytkownika
» 2012-12-15 17:33:30
Dzięki za pomoc i przepraszam, że nie napisałem dokładnie, chodizło mi aby to generalnie działało, można zamknąć, dzieki wielkie.
P-71111
« 1 »
  Strona 1 z 1