dzelo3 Opublikowano 13 Października 2011 Udostępnij Opublikowano 13 Października 2011 Mam pewien problem, a mianowicie : chcę aby co sekundę, zmienna otrzymywała 1 pkt. w "step" napisałem tak : GML global.sur_drewno+=1/room_speed odpalam grę, i te sekundy nie są sekundami, tzn są dłuższe od rzeczywistego czasu, czyli pkt dodają się wolniej... jednak gdy przełączę okno gry na okno jakiegoś folderu a grę zostawiam w tle, to sekundy chodzą idealnie. ( screen ) Co mam zrobić żeby sekundy były równe podczas aktywnego okna gry ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rudy Opublikowano 13 Października 2011 Udostępnij Opublikowano 13 Października 2011 Sprawdzałeś fps? Może jak przysłaniasz okno, część operacji się nie wykonuje i gra pracuje szybciej, przez to sekundy tylko wtedy są sekundami. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 14 Października 2011 Udostępnij Opublikowano 14 Października 2011 Jeżeli chcesz czas niezależnie od fps, używaj current_time: GML start=current_time; stop=start+1000*ile_sekund; GML if (current_time >stop and stop !=-1) { //ekszyn } Pokombinuj, bo dawno w gm się nie bawiłem. W tym ifie dałem warunek że zmienna stop ma być różna od -1 po to, abyś mógł licznik stopować. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheMarcQ Opublikowano 14 Października 2011 Udostępnij Opublikowano 14 Października 2011 GML //create s=0; drewno=0; //step if (current_second != s){ drewno+=1; s = current_second; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dzelo3 Opublikowano 14 Października 2011 Autor Udostępnij Opublikowano 14 Października 2011 Dzięki TheMarcQ, teraz ładnie chodzi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi