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

[ALLEGRO 4] Użycie timer'a jako odliczacz czasu.

Ostatnio zmodyfikowano 2012-05-20 01:26
Autor Wiadomość
lama
Temat założony przez niniejszego użytkownika
[ALLEGRO 4] Użycie timer'a jako odliczacz czasu.
» 2012-05-20 00:00:29
Witam. Piszę w Allegro od jakiegoś miesiąca.
Aktualnie tworzę gierkę typu Mario, i mam problem z odliczaniem czasu.
W grze zastosowane są timery, ale nie mam pojęcia, jak wykorzystać je jako odliczanie czasu,
tj. że w pętli coś się wykonuje, a potem czeka daną ilość czasu zanim się powtórzy.


Szukałem na forum odpowiedzi na to pytanie, niestety nic nie znalazłem.
P-57020
diego997
» 2012-05-20 00:37:48
To jest głównie po to żeby gra na każdym komputerze chodziła identycznie ewentualnie wolniej(w przypadku słabego komputera) nigdy nie szybciej. Wiesz ja sobie to też musiałem sam przeanalizować bo wszędzie widziałem gotowe kody bez tłumaczenia co i jak.

Po prostu ta pętla wewnętrzna ma za zadanie wywoływać się tylko wtedy kiedy minie określony czas załóżmy 100 milisekund. Jak masz komputer który obiega główną pętlę w czasie 5 milisekund to ,,trochę,, minie czasu zanim odwiedzi tą pętlę czyli update gry(bo takie jest zadanie tej pętli) nastąpi później czyli w momencie kiedy powinno, ale żeby tak było za każdym razem to trzeba czas który upłynął odpowiednio ustawić tzn dekrementować go o czas jaki był potrzebny aby do tej pętli wejść czyli 100 milisekund a więc w tym przypadku spada do 0 i nalicza od początku czyli wychodzi na to samo . Oczywiście czas który stracił na przebywanie w tej pętli dodaje się później do czastu od którygo liczy.

Nie wiem cyz to jest zrozumiałe najlepiej to sobie samemu przeanalizować w końcu się załapie.
P-57021
lama
Temat założony przez niniejszego użytkownika
:)
» 2012-05-20 00:57:03
Okej, dzięki za odpowiedź, muszę przyjrzeć się działaniom timerów, bo zbyt dużo o nich nie wiem.
A jeszcze w tym temacie spytam: co zrobić, by program odczytywał tylko pojedyńcze kliknięcie klawisza?
(To znaczy, jak nacisnę np. strzałkę w górę, to np. zmienna
Bo niestety jedynym rozwiązaniem jakie dotąd mi przyszło do głowy, jest, by odczytało klawisz, wyczyściło bufor klawiatury i zaczekało kilkaset milisekund, może się mylę?


Z góry dzięki za odpowiedź.
P-57022
diego997
» 2012-05-20 01:15:25
Ok odpowiem tutaj jak ja to robię ale nastepnym razem lepiej zakładaj nowy temat według zasady jeden problem jeden temat :)

C/C++
bool block = 0;

if( !block )
{
    Keyboard.press( jakis klawisz );
    block = 1;
}
else
{
    if( Keyboard.released() )
         block = 0;
   
}

Coś w tym stylu ;p
P-57023
lama
Temat założony przez niniejszego użytkownika
» 2012-05-20 01:26:55
Dobra, dzięki. Jutro, tzn. dzisiaj jeszcze pomyślę :)

Temat zamykam.
P-57024
« 1 »
  Strona 1 z 1