Skocz do zawartości

Zapisywanie rooma


Rekomendowane odpowiedzi

Sprawa wygląda tak: Jestem w roomie "miasto" i daję dresiarzowi fajki które podniosłem z ziemi, dres przestaje być "solid" i mogę normalnie przechodzić. Jednak gdy wchodzę do budynku i wychodzę wszystko jest tak jak w fazie początkowej tj. fajki są na ziemi, a dres nie chce mnie przepuścić. Jak zrobić żeby zapisywały się rzeczy w roomie, podasz przechodzenia do innego. Dawanie obiektom "Persistent" na nie wiele się zdało bo rzeczy przechodzą tam gdzie nie trzeba np. kawałek podłoża wisi w powietrzu ; oo

Za pomoc dzięki

Odnośnik do komentarza
Udostępnij na innych stronach

Np. można użyć zmiennych globalnych i potem w create obiektu fajki dać

GML
if global.zebralem_fajki then {instance_destroy(); exit;}

 

a nie prędzej

 

GML
if global.zebralem_fajki= true then {instance_destroy(); exit;}

albo

GML
if global.zebralem_fajki = true

{

instance_destroy()

}

?

 

@up - wg. mnie - tak ;)

Odnośnik do komentarza
Udostępnij na innych stronach

U dresa daj

GML
if global.zebralem_fajki = true

{

instance_destroy()

}

albo

GML
if global.zebralem_fajki = true

{

instance_change(o_dres_przepuszcza,0)

}

 

Piszę z głowy, więc może być coś nie tak, ale wydaje mi się, że jest ok.

 

E: było źle, ale teraz jest ok. Na pewno.

Odnośnik do komentarza
Udostępnij na innych stronach

Hhhmmm...

Może

GML
if global.zebralem_fajki = true

{

instance_destroy()

visible = false

}

?

 

W fajkach, oczywiście.

-

Ale wydaje mi się, że to bug - ja mam w moim projekcie, że jak gracz zostanie rozjechany przez czołg, to zmienia się w obiekt o_krew, a on ma w create i step "speed = 0" a mimo wszystko dalej się porusza w kierunku, w którym uciekał gracz :o

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Sam jesteś bug.

 

Dałeś pewnie ustawianie zmiennej global.zebralem_fajki w którymś z obiektów który tworzy się w tym roomie - zatem jak wracasz, zmienna się resetuje. Musisz to dać pomiędzy menu a rozpoczęciem nowej gry.

 

Co do if global.zebralem_fajki, to nie trzeba dopisywać = true - bo if sprawdza, czy wartosć podana za nim jest prawdziwa - zatem wszystko co tam jest napisane sprowadzane jest ZAWSZE do true lub false i niczego innego. Zatem:

GML
global.zebralem_fajki = true; //tak dla jasnosci

if global.zebralem_fajki = true

// za global.zebralem_fajki podstwiamy wartosc tej zmiennej, zatem

if true = true

// skracając

if global.zebralem_fajki

// to po podstawieniu po prostu

if true

 

Bedziom, jeśli się nie znasz, nie wprowadzaj niepotrzebnie w błąd!

Odnośnik do komentarza
Udostępnij na innych stronach

Sam jesteś bug.

 

Dałeś pewnie ustawianie zmiennej global.zebralem_fajki w którymś z obiektów który tworzy się w tym roomie - zatem jak wracasz, zmienna się resetuje. Musisz to dać pomiędzy menu a rozpoczęciem nowej gry.

 

Co do if global.zebralem_fajki, to nie trzeba dopisywać = true - bo if sprawdza, czy wartosć podana za nim jest prawdziwa - zatem wszystko co tam jest napisane sprowadzane jest ZAWSZE do true lub false i niczego innego. Zatem:

GML
global.zebralem_fajki = true; //tak dla jasnosci

if global.zebralem_fajki = true

// za global.zebralem_fajki podstwiamy wartosc tej zmiennej, zatem

if true = true

// skracając

if global.zebralem_fajki

// to po podstawieniu po prostu

if true

 

Bedziom, jeśli się nie znasz, nie wprowadzaj niepotrzebnie w błąd!

 

Czyli dać coś w rodzaju inicjacji? I wpierniczyć w to wszystkie potrzebne mi parametry, tak ?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Tak, tak powinno się robić. Wtedy gdy np. masz własny system zapisu gry i robisz LOAD, to ustawiasz zmienne innym obiektem/roomem na te z pliku i przechodzisz do gry - dzięki czemu wszystko jest ustawione jak trzeba.

Odnośnik do komentarza
Udostępnij na innych stronach

Zrobiłem to tak:

Obiekt inicjacja w oddzielnym roomie.

CREATE:

GML
global.zebralem_fajki=false

STEP:

GML
if global.zebralem_fajki = true

{

with obj_fajki instance_destroy()

with obj_dres1 instance_change(obj_dres_faja,true);

with tekst_dresa instance_destroy()

}

 

Kolizja gracza z fajkami:

GML
global.zebralem_fajki=true

 

Nadal nie działa

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if global.zebralem_fajki = true

{

with obj_fajki instance_destroy()

with obj_dres1 instance_change(obj_dres_faja,true);

with tekst_dresa instance_destroy()

}

 

umieść to tam gdzie masz zmianę rooma z tych twoich domków na miasto

nie, lepiej będzie w 'room creation code' miasta

Odnośnik do komentarza
Udostępnij na innych stronach

Robisz obiekt np. obj_start i wrzucasz go do rooma start. Odpalasz grę przez room start. W create obj_start wpisujesz:

GML
global.fajki_zabral=false;

global.dres_przepusc=false;

 

idz do rooma gra// nie pamiętam jako to instrukcja.</span>

 

Obj_fajki

GML
//CREATE

if(global.fajki_zabral)

instance_destroy()

 

//Kolizja z graczem

global.fajki_zabral=true;

instance_destroy()

 

Obj_dres

GML
//CREATE

if(global.dres_przepusc)

solid=false;

else

solid=true;

 

Jeżeli umiesz obsługiwać pliki zewnętrzne (txt, ini), to wczytywaj dane z plików (tak samo zrobiłbym z wczytywaniem map- mniejsza waga gry i szybszej się ładuje).

Odnośnik do komentarza
Udostępnij na innych stronach

rzeczywiście, fajek już na ziemi nie ma, ale dres z fają po wyjściu bloku nie ma tej fai.

Poza tym na początku gry wyskakuje mi :

 

___________________________________________
ERROR in
action number 1
of Create Event
for object obj_fajki:

Error in code at line 1:
   if(global.fajki_zabral)
            ^
at position 11: Unknown variable fajki_zabral

 

ERROR in
action number 1
of Create Event
for object obj_fajki:

Error in code at line 1:
   if(global.fajki_zabral)
            ^
at position 11: Unknown variable fajki_zabral

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...