Skocz do zawartości

Przechodzenie z rooma do rooma


Markar

Rekomendowane odpowiedzi

Otż mam problem, zrobiłem sobie przechodzenie z rooma do rooma w moim Bravehearcie, wszystko działa dobrze, ale kiedy zniszcze przeciwnika i wejde np. do jaskini, i wrócę z powrotem on jest dalej... Wiem dlaczego tak się dzieje, ale nie umiem tego naprawić. Proszę o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm... w tego typu grze problem może występować wielokrotnie, dlatego trzeba użyć jakiegoś globalnego rozwiązania.

 

W każdym roomie stawiasz obiekt Controller. W jego Other -> Game start:

GML
global.list = ds_list_create();

Natomiast w Create lub Other -> Room start:

GML
if ( variable_global_exists( "list" ) )

{

for( i = 0; i < ds_list_size( global.list ); i += 1; )

{

with ( ds_list_find_value( global.list, i ) )

instance_destroy();

}

}

I w każdym obiekcie przed zniszczeniem:

GML
ds_list_add( global.list, id );

 

Moje uwagi:

  1. Użyłem zmiennej globalnej, aby każdy obiekt był w stanie odnosić się do listy zniszczonych obiektów (prawidłowo: instancji)
  2. Teraz, niestety, niszczenie każdej instancji może wydawać się nieco bardziej skomplikowane, ale uwierz, to tylko jedna linijka kodu więcej :) .
Odnośnik do komentarza
Udostępnij na innych stronach

Weź sobie w kliknięciu na ten obiekt z ktorego przechodzisz z 1 pokoju do drogiego że global.prx=x; global.pry=y; i w create player daj ze x=global.prx; y=global.pry-10(dla pewności ;] ); z resztą pokombinuj, ale zawsze musisz zrobić odpowiednio te zmienne do pokoju żeby nie wyskakiwaly errory itp.. Taki sposob ci proponujea

 

a sory źle przeczytałem

Odnośnik do komentarza
Udostępnij na innych stronach

Robota i logiczne myślenie za każdym razem przynosi to:

 

ERROR in

action number 1

of Other Event: Room Start

for object O_obiekty1:

 

Error in code at line 1:

if ( variable_global_exists( list ) )

 

at position 30: Unknown variable list

 

I wiem że oznacza to że nie istnieje(lub jest nieprawidłowa) zmienna list. Ale co ja mam zrobić??

Odnośnik do komentarza
Udostępnij na innych stronach

https://gmclan.org/up5971_11_myslmysl.html

 

Proszę. Trochę mi przykro, że wolisz mieć wszystko podane na tacy, jednak obawiam się, że przykład i tak na nic ci się zda. Z twoich postów wynika, że nie doceniasz pomocy innych, cóż, nie jestem twoim rodzicem i raczej tego nie zmienię :) .

Odnośnik do komentarza
Udostępnij na innych stronach

Tera kapuje, nie dałem znaków "i", i mam dość dużą wiedzę w gm'ie, i wcale nie jestem uparty, ani leniwy, po prostu zgłupiałem z tym.

I wcale nie jestem taki tępy, i tak jest error, myśl! :P

ERROR in

action number 1

of Mouse Event for Left Pressed

for object object1:

 

Error in code at line 1:

ds_list_add( global.list, id);

 

at position 22: Unknown variable list

 

Więc jestewś w błędzie mówiąc: event game start może wywołać się nie na początku gry, lecz na początku istnienia instancji danego obiektu.

 

Edit: poradziłem sobie ;p

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

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