RaistlinBlackRobe Opublikowano 13 Października 2007 Udostępnij Opublikowano 13 Października 2007 Robie grę 2d z widokiem z góry(takim jak w Almorze ale od razu mówię, że to będzie coś zupełnie innego, zresztą ja w Almore nigdy nie grałem) i mój Character składa się z kilku części. Składam to oczywiście za pomocą Draw: draw_sprite_ext( Spr_Lance, 0, x + lengthdir_x( 14, image_angle - 70 ), y + lengthdir_y( 14, image_angle - 70 ), image_xscale, image_yscale, image_angle, image_blend, image_alpha ); draw_sprite_ext( Spr_Arms, 0, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha ); draw_sprite_ext( Spr_Head, 0, x, y, image_xscale, image_yscale, direction, image_blend, image_alpha ); draw_sprite_ext( Spr_Shield, 0, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha ); Noi problem jest następujący: Jak zrobić, aby była sprawdzana kolizja pomiędzy obiektem Obj_Thief, a Spr_Lance, który jest częścią Obj_Char??? Byłbym wdzięczny za wskazówki. Nie prosze o przykłady, żeby nie było, że nie mam wkładu we własną grę. Z góry dzieki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 13 Października 2007 Udostępnij Opublikowano 13 Października 2007 Ja kiedyś miałem taki sposób aby tworzyć nowy obiekt który był odpowiedzialny za kolizje x) Ale teraz to za pomocą "collision_..., lenghtdir_x i lenghtdir_y" ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
RaistlinBlackRobe Opublikowano 13 Października 2007 Autor Udostępnij Opublikowano 13 Października 2007 Ja kiedyś miałem taki sposób aby tworzyć nowy obiekt który był odpowiedzialny za kolizje x) Ale teraz to za pomocą "collision_..., lenghtdir_x i lenghtdir_y" ;p Niestety wyskakuje error. Skryptu użyłem w Obj_Char: W Step: collision = collision_point( lenghtdir_x, lenghtdir_y, Obj_Thief, true, false); I w Glob Right Button(Mouse): If Fight = 1 { If collision = true {show_message('Uderzylem');}; }; Zrobiłem straszną głupote tylko nie wiem gdzie(błąd odnosi się do wyrażenia if collision = true {}). :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maxpayn Opublikowano 13 Października 2007 Udostępnij Opublikowano 13 Października 2007 "if" pisze się z małej litery. EDIT Po warunku if nie stawia się {} Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 13 Października 2007 Udostępnij Opublikowano 13 Października 2007 Nalezy jeszcze ustawiac maski na danych miejscach podczas sprawdzania kolizji Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
RaistlinBlackRobe Opublikowano 13 Października 2007 Autor Udostępnij Opublikowano 13 Października 2007 Rady zastosowane. Tylko jak lanca przeszywa powietrze i kieruje swe ostrze na cel to: ERROR in action number 1 of Mouse Event for Glob Right Button for object Obj_Hero: Error in code at line 13: collision = collision_point( lengthdir_x, lengthdir_y, Obj_Mon, true, false); at position 35: Unknown variable lengthdir_x Sądzę, że to samo z lengthdir_y. No kod jest taki masło maślane bo funkcje jako argumenty innej funkcji. Próbowałem wielu rzeczy. Nawet deklarowałem je w script z: return( 14, image_angle - 70 ) Noi jest zdezorientowany. PS.: Czy obiekt może mieć więcej niż jedną maskę? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 13 Października 2007 Udostępnij Opublikowano 13 Października 2007 lengthdir_x, lengthdir_y, A gdzie argumenty tych funkcji?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
RaistlinBlackRobe Opublikowano 13 Października 2007 Autor Udostępnij Opublikowano 13 Października 2007 A gdzie argumenty tych funkcji?? Wcześniej je podawałem, ale miałem literówke w nazwie funkcji i przez nią niesłusznie zrezygnowałem z nich. Niestety nie wykrywa kolizji(próbowałem z line i ellipse też). A mógłbyś zaproponować argumenty, bo zaczynam sięgać szczytu Newbowstwa(człowiek myśli, że coś już tam zaczyna łapać, a tu nagle stoczenie i to bolesne). :crying: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 13 Października 2007 Udostępnij Opublikowano 13 Października 2007 No zajrzyj do helpa masz lengthdir_x(maxdist,direction) maxdist czyli ta odległość od punktu x i direction czyli kierunek... wpisujesz co trza i bęc! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
RaistlinBlackRobe Opublikowano 14 Października 2007 Autor Udostępnij Opublikowano 14 Października 2007 No ok. Już kapuję, z tymże kolizja nie zostaje wykryta. Budowa jest taka: kolizja = collision_...; if kolizja = true then...; Nie jestem w stanie wymyślić gdzie miałby występować błąd. Spróbowałem także wykonać w Draw zastąpić draw_sprite_ext na instance_create. XD zwiecha całego kompa i to dość długa(dość długo z nią walczyłem). Następnie umieściłem instance create nieszczęsne w Glob Right Button(mouse) i dalem tam tez: do Obj_Lance.x = x + lengthdir_x(14, image_angle - 70 ) and Obj_Lance.y = y + lengthdir_y(14, image_angle - 70 ) until mouse_check_button_released(mb_right) = true; A potem w Glob Right Button Release(mouse) dałem nie skrypt, a klocek instance destroy Obj_Lance. Po wyjęciu broni (PPM) gra zwieszona a lanca i tak się nie pojawia. Noi brakło mi rozwiązań. EDIT: Już sobie poradziłem. I mówiąc szczerze to to było banalne. ;) Dzieks wszystkim, którzy chcieli pomóc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi