uzu13 Opublikowano 15 Maja 2010 Udostępnij Opublikowano 15 Maja 2010 Witam. Mam 2 objekty ( obj_1, obj_2 ). Chcę zrobić aby po kolizji obj_1 z obj_2 ( wtedy wlacza sie animacja w obj_1 ) po skonczeniu animacji w obj_1 odejmowalo 5 zycia w obj_2. Lecz na planszy sa jeszcze inne obj_2 wiec zycie ma sie odejmowac temu co sie kolizjuje. Help. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 15 Maja 2010 Udostępnij Opublikowano 15 Maja 2010 Wykorzystaj takie eventy jak Collision with (to chyba oczywiste) i Animation End. Dodatkowo zainteresuj się funkcją instance_nearest, ew. zapisuj to ID drugiego obiektu przez other w wyniku kolizji. podrzucanie wędki ftw Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 15 Maja 2010 Autor Udostępnij Opublikowano 15 Maja 2010 A mógłby mi ktoś podać kod z tym instance_nearest? Bo kombinuję i nie bardzo działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 15 Maja 2010 Udostępnij Opublikowano 15 Maja 2010 instance nearest zwraca id najblizszego obiektu danego typu do danej pozycji mojkonkretnyObj2 = instance_nearest(x, y, obj_2); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
CTRL Opublikowano 15 Maja 2010 Udostępnij Opublikowano 15 Maja 2010 other :) Pomyślunek: +1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 15 Maja 2010 Udostępnij Opublikowano 15 Maja 2010 Albo other, będzie lepsze przy sytuacji gdzie jest mnóstwo wrogów w okół ciebie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assassin Opublikowano 15 Maja 2010 Udostępnij Opublikowano 15 Maja 2010 Kolizja: GML zmienna=other //jakastam animacja</span> Animation end: GML zmienna.hp-=5 Coś takiego chyba. Jak nie czaisz to mogę zrobić przykład. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 15 Maja 2010 Autor Udostępnij Opublikowano 15 Maja 2010 To jak byś mółgł Assassin Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 15 Maja 2010 Udostępnij Opublikowano 15 Maja 2010 GML (create) a=false;//zapamiętuje id obj_2 z którym obj_1 ma kolizję // false oznacza, że nie ma z żadnym kolizji</span> GML (step obj1) if(collision_circle(x,y,10,obj_2,1,0)&&!a)//jeśli obj_2 jest w promieniu 10 px od obj_1 i a jest 0 { a=collision_circle(x,y,10,obj_2,1,0);//zapamiętaj pod zmienną a id obj_2, który ma kolizję z obj_1 // reszta kodu } GML (tam gdzie masz kod na koniec ataku w obj1) a.hp-=5;//odejmij obj_2, który ma id=a, 5 hp a=fasle;//żeby znów można było wykonać animacje ataku</span> Wartość promienia w drugim coliision_circle() musi być co najmniej równa wartości promienia w pierwszym collision_circle(). W przeciwnym razie wyskoczą Ci błędy, ponieważ warunek if() będzie spełniony a kod a=collision_circle(x,y,10,obj_2,1,0); nie będzie wykonany, gdyż obj_1, nie będzie miał kolizji z obj_2. Inaczej mówiąc GM nie wie z którym obj_2 koliduje obj_1. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
uzu13 Opublikowano 15 Maja 2010 Autor Udostępnij Opublikowano 15 Maja 2010 DZIĘKI CANDY!!! Juz myslalem ze nie skoncze tego co zaczalem... THX Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę