Skocz do zawartości

"Kopiowanie" obiektów w roomie


Rekomendowane odpowiedzi

Witam,

chciałbym skopiować wszystkie obiekty w roomie które są obiektami typu obj_wall.

 

Zrobiłem tak ale coś mi tutaj nie działa, wydawało mi się że to przechodzi przez wszystkie obiekty ale chyba jest inaczej

skoro nie działa:

 

with(obj_wall)

{

...

}

Odnośnik do komentarza
Udostępnij na innych stronach

Okej, problem polega na tym że tworzy to kopie jednego obiektu obj_wall a nie wszystkich.

Mój kod:

 

obj_controller > mouse global right button

 

GML
with(obj_wall)

{

instance_create(obj_wall.x+64,obj_wall.y+64,obj_wall);

}

 

obj_controller > mouse global left button

 

GML
instance_create(floor(mouse_x/64)*64,floor(mouse_y/64)*64,obj_wall);

 

No i jeszcze obiekt obj_wall który nosi sprite o wielkości 64x64.

 

Prosze o pomoc!

Odnośnik do komentarza
Udostępnij na innych stronach

Twój problem nie jest w tym że tworzy się jeden obiekt. Tworzy się ich tyle ile chcesz. :) Problem jest taki że wszystkie tworzą się w jednej pozycji. Dobrze myślałeś ale zabrakło Ci trochę wiedzy.

 

Odnosisz się do obj_wall który jest obiektem, a nie instance. W room są rozstawione instance a nie obiekty. Adresowanie do obiektów jest w GM tolerowane i działą tak samo jak dla instance. Różnica robi się dopiero gdy jest tych instance kilka i mają różne wartości. Może wtedy GM odnosi się do pierwszej instance która mu wygodniej, nie wiem nigdy nie sprawdzałem.

 

Rozwiązanie twojego problemu będzie bardzo proste dzięki zasadzie działania with. Wewnątrz with kod wykonuje się jakby był wewnątrz tego obiektu więc możesz odnosić się bez problemu do zmiennych lokalnych.

Przez to też nie możesz się np odnosić do zmiennych lokalnych obiektu w którym kod jest wpisany, aby to zrobić trzeba używać other.

 

Rozwiązanie:

GML
with(obj_wall)

{

instance_create(x+64,y+64,obj_wall);

}

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