[C++] Odmierzanie czasu dopóki ten nie uzyska danej wartości.
Witam.
Chciałem to zrobić sam ale już powoli zaczyna mi brakować pomysłów. Otóż robię gierkę w konsoli, coś na styl omijania swoim pojazdem innych aut nadjeżdżających z przeciwnej strony planszy i naszym celem jest jak najdłuższe omijanie "przeszkód" co dodaje nam punkty...
I ogólnie to uporałem się z : planszą gry ( tablica 2D ), sterowaniem, generowaniem pojazdów , warunkami odnośnie ich... Ale jest jeden haczyk - pojazdy stoją w miejscu.
Na początku chciałem to rozwiązać na głupiego za pomocą _sleep-a, ale takowy zatrzymuje CAŁY program a chodzi o to że podczas "nadjeżdżania" kolejnych pojazdów mamy możliwość klikając klawisz zjechać na prawo czy lewo - więc : Albo gracz albo przeszkody - tylko jedna rzecz mogła być dynamiczna. <- ODPADA
Później wpadłem na pomysł pogrzebania w innych bibliotekach standardowych i przyjrzałem się bliżej bibliotece time.h / ctime , która wydawała się najodpowiedniejszą. Wygrzebałem funkcję "difftime" która ma na celu obliczanie różnicy między dwoma czasami/dwiema datami. Wpadłem na warunek który ogólnie w programie działał by tak :
- Zacznij odliczać czas
- Licz czas i "poruszaj" pojazdami dopóki nie będzie kliknięty jakiś klawisz ruchu
Pojazdy miały by się przesuwać/odświeżać na kolejnych polach co 1 sekundę czyli nasuwa się myśl że warunek ma być taki :
- Licz czas dopóki jego wartość nie osiągnie '1', jeżeli osiągnie, odśwież planszę gry i licz od nowa
I dotarliśmy do sedna sprawy : Jak to zrobić ???
Załączam to co do tej pory wyskrobałem z difftime odnośnie odliczania czasu przez jakiś czas
#include <time.h>
#include <conio.h>
#include <iostream>
void Zliczanie();
time_t start, koniec;
double roznica;
int main()
{
if( start == 1 )
{
time( & koniec );
std::cout << "\n GZ \n";
getch();
}
else
{
std::cout << "\n no to dupa \n";
getch();
std::cout << start;
getch();
}
}
PS : Środowisko : DEVCPP ale to raczej nie ma tutaj najmniejszego znaczenia :)
Prosiłbym o conajmniej sugestię co tutaj zapisuje odliczony czas bo nawet w warunku else sprawdziłem co nie tak ze startem - wydaje mi się że jakąś bzdurę ciągle robię...
A i jeszcze jedno : Jeżeli ktoś ma inną sugestię na temat rozwiązania mojego problemu ( inny sposób niż difftime ) to także będę wdzięczny :)