Skocz do zawartości
Temporal

Alarm get z innego obiektu

Rekomendowane odpowiedzi

Mam w grze obiekt ctr_game, który robi za taki "globalny obiekt". Odpowiedzialny jest za kody, debbuger i inne takie. W moim debugerze chcę widzieć aktualną wartość alarmu konkretnego obiektu. Jest taka funkcja alarm_get i dzięki niej mogę sprawdzić wartość konkretnego alarmu dla obiektu w którym użyta jest ta funkcja. Problem jest taki, że chcę użyć tej funkcji w moim globalnym obiekcie.

 

if (hide = true) && (instance_exists(obj_player)){
    draw_text(10,30,"hspd "+string(obj_player.hspd));
    draw_text(10,50,"vspd "+string(obj_player.vspd));
    draw_text(10,70,"grounded "+string(obj_player.grounded));
    draw_text(10,90,"shooting "+string(obj_player.shooting));
    draw_text(10,110,"alarm shooting "+string(alarm_get(0)));
}

 

W ostatniej linijce widać co chcę zrobić. Oczywiście chcę się odnieść do obiektu obj_player, tylko nie wiem jak to ugryźć :/ Mam coś kombinować z with obj_player?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
string(obj_player.alarm[0])

 

Zmienne alarmowe i tak zawsze istnieją.

 

Gdyby jednak zmienna nie istniała, odpowiedzią byłoby

var _a;
with(obj_player){_a = alarm_get(0);}
draw_text(10,110,"alarm shooting "+string(alarm_get(0)));

Zmienne tymczasowe "var" są globalne względem with, co warto pamiętać - pozostałe zmienne zmieniają oczywiście kontekst.

 

  • Super (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

tam w ostatniej linijce nie powinno być:

 

draw_text(10,110, "alarm shooting" +string(a);

 

zamiast

var _a;
with(obj_player){_a = alarm_get(0);}
draw_text(10,110,"alarm shooting "+string(alarm_get(0)));

 

??

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Powinno, poprawiłem :) Skopiowałem z linijki wyżej bo na szybko pisałem.

  • Super (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Trochę ze mnie debil, bo całkowicie zapomniałem, że alarm to po prostu wbudowana zmienna i mogę się do niej dostać tak samo jak do zdefiniowanych przez siebie zmiennych. Pytanie tylko teraz jest takie: po co jest to całe alarm_get? Sugerowałem się tym co jest napisane w helpie, ale teraz wychodzi, że prościej sczytywać sobie wartość bezpośrednio jak blabla = alarm[0] czy tak jak dla tego przypadku obj_player.alarm[0] Nie za bardzo widzę zastosowanie dla tego alarm_get... chyba, że to jakieś pozostałości ze starych wersji GM, gdzie inaczej się nie dało dobrać do tych wartości.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Właśnie jak zadałeś pytanie, tak samo się zastanowiłem - po cholerę to jest ? na pewno to nie pozostałość starych GMów, tego chyba wcześniej nie było - http://gamemaker.info/en/manual - musiało więc dojść w GMS.

  • Lubię (+1) 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
4 godziny temu, gnysek napisał:

Właśnie jak zadałeś pytanie, tak samo się zastanowiłem - po cholerę to jest ? na pewno to nie pozostałość starych GMów, tego chyba wcześniej nie było - http://gamemaker.info/en/manual - musiało więc dojść w GMS.

Podejrzewam, że funkcję wprowadzono, żeby początkujący mogli się lepiej z tym odnaleźć. Alarm[x] wygląda dużo mniej zrozumiale niż alarm_get() no i druga opcja nie wymaga znajomości tablic i zastanawiania się co oznacza ten kwadratowy nawias. Czy to może źle zapisana funkcja i powinien być okrągły? Wiem, to głupie i raczej nie rozwijające, ale bardzo możliwe. Innego powodu nie widzę.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Może być tak, że planowali usunąć w GMS2 alarmy właśnie w formie tablic (przez to, że nie możesz zrobić 100 alarmów, co sugerowałaby notacja tablicowa).

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×