Skocz do zawartości

Rekomendowane odpowiedzi

  • Administratorzy
Opublikowano

To ja wam teraz utrudnię. W create roomu zróbcie tak:

GML
instance_create(64,64,obiekt);

instance_create(32,32,obiekt);

instance_create(48,48,obiekt);

 

Zakładamy, że obiekt ma rozmiar 32,32, kolizje w sprite ma zaznaczone jako nieprecyzyjne i orgin na full image, brak transparent. Depth ustawiony na 0.

Jak sprawdzicie który z nich ma większy depth, skoro wszystkie mają ten sam, ale w roomie widać jednak, że jeden z nich jest wyżej od reszty?

Opublikowano
To ja wam teraz utrudnię. W create roomu zróbcie tak:

GML
instance_create(64,64,obiekt);

instance_create(32,32,obiekt);

instance_create(48,48,obiekt);

 

Zakładamy, że obiekt ma rozmiar 32,32, kolizje w sprite ma zaznaczone jako nieprecyzyjne i orgin na full image, brak transparent. Depth ustawiony na 0.

Jak sprawdzicie który z nich ma większy depth, skoro wszystkie mają ten sam, ale w roomie widać jednak, że jeden z nich jest wyżej od reszty?

To wtedy bierzesz id, ale jako że with sprawdza wg idów to mój kod będzie działać i w tym przypadku.

Oto dowód https://gmclan.org/up2052_11_jakniedzialajakdziala.html

Opublikowano

@Harrrry: No właśnie o to mi chodziło xD

Teraz jeszcze trudniejsze: załóżmy, że klikniesz obiekt, który jest pod innym: jak zrobić, żeby wylądował na samiutkim wierzchu? Zmiana własnego id na 100000 i innych na +1? Ale to nie możliwe :/

 

HEEEELP!! :crying:

Opublikowano

po co zmieniać id? przecież się nie da ;P

zmień temu klikniętemu depth.

 

Chodzi o to aby ten spod spodu był na wierzchu?

GML
if ( id = instance_position( mouse_x , mouse_y , obj0 )depth = - instance_find( obj0 , instance_number( obj0 )) +1
Opublikowano

@Marek.S: Prawie :D

Poprawiłem:

GML
if (id=instance_position(mouse_x,mouse_y,object1)) {depth=-instance_find(object1,instance_number(object1))+1}

Po podstawieniu do przykładu do event Left pressed object1 działa jak ta lala :D

Dzięki :thumbsup:

Opublikowano

Faktycznie :D Już poprawione

Tylko mały problem: sprite już nie przesuwa się na wierzch. (jest w draw: draw_sprite(sprite,sprite,x,y) )

Opublikowano

mała poprawka, powinno być:

GML
if ( id = instance_position( mouse_x , mouse_y , obj0 )) depth = - ( instance_find( obj0 , instance_number( obj0 )) +1 )

 

no i jeszcze draw_sprite wygląda tak:

GML
draw_sprite( sprite_index , image_index , x , y )
ale nie wiem czy to coś zmieni.
Opublikowano

@Pental: A o czym mówisz? I piernik do wiatraka ma to, że jest z mąki, a mąka jest z wiatraka.

Opublikowano
@Pental: A o czym mówisz? I piernik do wiatraka ma to, że jest z mąki, a mąka jest z wiatraka.

dupa! Piernik nie ma nic do wiatraka... nie myl wiatraka z młynem!

Opublikowano

Ano rację masz, ale w przeszłości wiatraki spełniały także rolę młyna ;P

Problem, który się pojawia jest taki, że przy zmianie depth obiekt zmienia swoje położenie względem innych, ale sprite już nie :/

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