Sutikku Opublikowano 3 Sierpnia 2014 Udostępnij Opublikowano 3 Sierpnia 2014 Chciałbym sprawdzać jak długo dany obiekt istnieje. Wiem, że można to zrobić na alarmach, ale czy jest jakiś lepszy sposób? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zombie-Games Opublikowano 3 Sierpnia 2014 Udostępnij Opublikowano 3 Sierpnia 2014 Wiem, że można to zrobić na alarmach, ale czy jest jakiś lepszy sposób? Tak . ALARMY ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 3 Sierpnia 2014 Udostępnij Opublikowano 3 Sierpnia 2014 current_time Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jakim Opublikowano 3 Sierpnia 2014 Udostępnij Opublikowano 3 Sierpnia 2014 Stara metoda polega na stworzenie licznika w Create żądanego obiektu, np. GML timer = 0 Natomiast Step: GML timer += 1 Z każdą klatką nalicza się licznik, to daje synchronizację z czasem gry. Jeżeli jednak potrzebujemy czasu systemowego, w Create wpisujemy: GML timer = current_time Różnica GML current_time - timer zwraca żądany czas. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 4 Sierpnia 2014 Administratorzy Udostępnij Opublikowano 4 Sierpnia 2014 Alarmy to akurat do tego są najmniej odpowiednie. Bo alarm służy do tego, aby zdarzenie się wykonało po jakimś tam czasie, a nie do liczenia. Zliczanie to się robi dodając a nie odejmując i tylko powyższy post zalecam jako rozwiązanie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 4 Sierpnia 2014 Udostępnij Opublikowano 4 Sierpnia 2014 Są tylko 2 odpowiednie sposoby. Pierwszy podał Jakim, i jest to stworzenie licznika wewnątrz obiektu który będzie rósł co step. I to zazwyczaj wystarcza. Drugim sposobem (wg mnie bardziej uniwersalnym, szybszym i lepszym!) jest stworzenie przy create zmiennej przechowującą aktualny czas jako czas narodzin. Potem gdy trzeba sprawdzić wiek wystarczy jednorazowo odjąć nowy aktualny czas od narodzin. Jest 2014 Urodziłeś się w 2001 Masz 13 lat. Aktualny czas może być sekundami (current_time), milisekundami od początku gry (get_timer();) albo globalną zmienną którą będziesz zwiększał co step w jakimś kontrolerze (#polecam). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 5 Sierpnia 2014 Udostępnij Opublikowano 5 Sierpnia 2014 Nie lubię mieć w każdym obiekcie licznika, którego jedynym zadaniem jest dodawanie liczby co każdą klatkę. Zamiast tego tworzę jeden, globalny licznik (nazwijmy go global.counter) w obiekcie-kontrolerze; w Create każdego obiektu zapisujemy: GML spawnTime = global.counter; W Step kontrolera: GML global.counter ++; Żeby sprawdzić, ile istnieje dany obiekt, wystarczy wykonać zwykłe odejmowanie (można dokonać tego w dowolnym momencie gry): GML time = global.counter-spawnTime Jak masz 600 obiektów na planszy jednocześnie, to robi się to całkiem przydatne, a w dodatku dezaktywowanie obiektu nie powoduje zatrzymywania się licznika w czasie. Poza tym wszelkie efekty, jakie będziesz chciał dodać do gry i manipulujące upływem czasu, nie będą naruszały wieku obiektów w nieprzewidziany sposób - wystarczy manipulacja globalnym licznikiem. Edit: sorry Threef, jest późno i nie doczytałem całego tematu : ( Przynajmniej myślimy podobnie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się