Skocz do zawartości

kolizje obiektu


Rekomendowane odpowiedzi

Hej

 

Mam problem z uzyskaniem nazwy dotkniętego obiektu przez dotykający obiekt. Chodzi o to aby obiekt_A w momencie najechania na obiekt_B zwrócił nazwę tegoż obiektu (obiekt_B). oto fragment kodu i komend typu obiect_get_name, sprite_get_name . Może ktoś z Was ma pojęcie jak to ugryźć ??

 

 

 

----------------------- obiekt_a--(sekcja STEP)------------------------

if(keyboard_check_direct(ord("W"))) then x+=1;

if(keyboard_check_direct(ord("Q"))) then x-=1;

 

ID = instance_place(x,y,all);

if (ID) > -3 then { ZNAK = 'mam cos'; zm=1; }

else { ZNAK='puste pole'; zm=0; }

if zm=1 then {

str=object_get_name(object_index);

stp=sprite_get_name(sprite_index);

sti=asset_get_index('A');

----dotknolem----= --------- i tu jakaś instrukcja która by pobierała nazwę obiektu która dotknąłem obiektem_a

}

else str='pustka';

 

 

 

--------------------a to wyświetlanie (sekcja DRAW)---------------

draw_text(x,y+66,+'tak - '+string(ZNAK));

draw_text(x,y+80,+'zmienna dotkniecia- '+string(zm));

draw_text(x,y+96,+'jakim obiektem - '+string(str));

draw_text(x,y+112,+'jakim spritem - '+string(stp));

draw_text(x,y+128,+'co dotknolem - '+string(----dotknolem----));

Odnośnik do komentarza
Udostępnij na innych stronach

dlaczego nie zrobisz tego w evencie collision?!

łatwo by to wyszło

GML (create)
str=""

GML (collision)
str=object_get_name(other.object_index)

GML (draw)
if str!=""

draw_text(x,y+96,+'jakim obiektem - '+string(str);

else

draw_text(x,y+96,+"brak kolizii";

str=""//resetowanie zmiennej po wyswietleniu</span></span>

Odnośnik do komentarza
Udostępnij na innych stronach

no tak tez można, tylko ze ja mam duzo obiektow do zbadania i wolałbym to zrobić w jednej sekcji. Twoje rozwiazanie tylko zmienilo sposób napisania kodu i umieszczenia go w różnych częściach programu (create,event collision,draw). Tylko problem dotyczy innej kwestii. Wciągu nie rozwiązało to problemu z pobraniem nazwy a potem wyswietleniem "co dotknąłem" tzn nazwy obiektu bądź sprit-a którego dotknąłem w danym momencie ..................

Odnośnik do komentarza
Udostępnij na innych stronach

obiekt_index zwraca id z drzewka obiektów a nie 0 lub 1

This read only variable returns the index of the object that the instance has been created from. This is not the same as the object name, which is a string and can be found using object_get_name, as this function returns the index number, which is a unique number that GameMaker: Studio assigns to every object at the time of creation.

 

Nazwa obiektu:

GML
object_get_name(ID.object_index);
Odnośnik do komentarza
Udostępnij na innych stronach

Działa, niestety zapomniałem załączyć ID i w tym był "pies pogrzebany" . poprzednio zwracało mi tylko numer który nic mi nie mówił a teraz nazwę :).............. Jednak prawdą jest że najtrudniejsze rozwiązania to tylko kwestia drobnych detali . Bardzo dziękuję za podpowiedź :)

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