Skocz do zawartości

Zablokowane Kolizja z obiektem podczas przenoszenia innego obiektu


Grabus

Rekomendowane odpowiedzi

Potrzebny mi taki efekt:

Załóżmy, że mam objekt ABC. Ma on rozmiary 100x100. Mam też objekty XYZ, załóżmy o wymiarach 10x10. Obiekty XYZ są poukładane jak w tabeli (myślę że dobrze wytłumaczyłem). Chcem by podczas kolizji z obiektu ABC (gdy jest przenoszony myszką) z objektem XYZ objekt XYZ zmieniał kolor. Napisałem kod który to wykonywał, ale kiedy objekt ABC "zostawiłem" na obiektach XYZ i brałem myszką drugi objekt ABC to obiekty XYZ, które znajdowały się pod pierwszym ABC też zmieniały kolor. Jak tego uniknąc?

Dzięki z góry za pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Niezabardzo bo kolor obiektu XYZ ma się zmieniać tylko gdy jest kolizja z przenoszonym ABC. Jest kilka obiektów XYZ a zmienic kolor ma tylko ten który koliduje z przenoszonym ABC. A jak użyje zmiennej globalnej to wszystkie będą zmieniały kolor.

Odnośnik do komentarza
Udostępnij na innych stronach

heh, sposobów jest kilka np:

GML
if mouse_check_button(mb_left)

{

migajacy=instance_nearest(x,y,ABC)

if place_meeting(x,y,migajacy)

{

//zmiana koloru obiektu 'migajacy'

}

}

Coś takiego, w sumie można i lepiej, ale tak też powinno działac

 

E: heh, Marku, jakiś ja mało pomysłowy dzisiaj;/

Odnośnik do komentarza
Udostępnij na innych stronach

GML (STEP dla XYZ)
if ( place_meeting( x , y , obj_abc )) image_blend = c_red else image_blend = c_white
powinno działać.

Ten sposób zawiedzie. Właśnie na początku tak zrobiłem, ale wystąpi to co opisałem na początku. Obiekty XYZ, na ktorych leży nieprzenoszony ABC też zmienią kolor.

 

heh, sposobów jest kilka np:

GML
if mouse_check_button(mb_left)

{

migajacy=instance_nearest(x,y,ABC)

if place_meeting(x,y,migajacy)

{

//zmiana koloru obiektu 'migajacy'

}

}

Coś takiego, w sumie można i lepiej, ale tak też powinno działac

Ten kod umieścić w Step XYZ? Bo jeśli tak to ten sam efekt co pare linijek wyżej...

Odnośnik do komentarza
Udostępnij na innych stronach

kurcze! weź sobie uprość i zrób:

GML
image_index = ! moj_efekt
pamiętaj, ze zmienne nie mogą zawierać polskich znaków.! ;)

 

Co do powyższego... Kłamiesz!

działa.

 

smi_file.gif przenoszenie.gm6 ;)

 

 

E:

A używasz draw_sprite w obiektach ?

Bo jeżeli tak to wszystko dla mnie jasne :)

nie koniecznie. Bo ja ma ustawioną maskę to my rybka czy rysuje sprita :P
Odnośnik do komentarza
Udostępnij na innych stronach

Potrzebny mi taki efekt:

Chcem by podczas kolizji z obiektu ABC (gdy jest przenoszony myszką)

To objekt ABC ma być przenoszony (ten większy).

E: A o polskich znakach to dla mnie oczywiste. Nazwa zmiennej w kodzie podanym prze ze mnie powyżej miała tylko mówić o co mi chodzi.

Odnośnik do komentarza
Udostępnij na innych stronach

no to przecież xyz zmienia kolor przy kolizji z abc. Chyba o to Ci chodziło.

potraktuj to przenoszenie myszką jako dodatek i dodaj je sobie do abc.

 

Kurcze, zacznij też pracować sam. Rozwiązałem Twój główny problem, więc z resztą nie powinieneś mieć problemu.

Odnośnik do komentarza
Udostępnij na innych stronach

To co zrobiłeś jako przykład to już miałem przed stworzeniem tematu.

potraktuj to przenoszenie myszką jako dodatek i dodaj je sobie do abc.

No właśnie w tym problem. Nie wiem jak zrobić by obiekt XYZ gdy styka się z ABC rozpoznawał czy jest przenoszony ABC. Próbowałem też z other ale nie dawało pozytywnego rezultatu bo XYZ podczas gry styka się też z innymi objetkami oprócz ABC.

Chodzi mi zeby było tak jak tutaj tylko jak przenosze ABC na XYZ i zostawie tam i zaczne podnosić drugi ABC to XYZ znajdujące się pod pierwszym znów zaczynają się "świecić".

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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