Skocz do zawartości

Blokowanie się obiektów


ylebex

Rekomendowane odpowiedzi

Witam wszystkich, to mój pierwszy post więc proszę o wyrozumiałość. Od tygodnia poznaję GM6.0 i próbuje stworzyć grę w stylu piłkarzyków w barze.

Ogólnie wszystko już chodzi, :D ale mam pewien problem (próbowałem znaleźć odp. na forum ale po przeczytaniu kilkudziesięciu postów wymiękłem).

Chodzi o odbijanie piłki od zawodników, wyglądają podobnie do ludzika z GTA co oznacza ze mają nieregularny obwód. I piłka odbijająca się od nich czasami zawiesza się na zawodniku, albo co gorsza zawodnik wbija piłkę w ścianę i ona tam zostaje, czytałem, że można jakiegoś przeźroczystego sprite'a zrobić chyba co podąza za zawodnikiem ale nie do końca to rozumiem.Proszę Panowie HELP ME.

 

I drugi problem. Mam zawodników, ruszaja sie góra-dól i są w tej samej linii ustawieni ( z tej samej druzyny) tak :

-----------------

x

 

x

 

-----------------

Sciany sa solid i jak jeden z zawodników (x) jej dotknie to sie zatrzymuje ale drugi wpada na niego i potem juz wracają w dół razem.

Jak zrobić aby odległośc miedzy nimi sie nie zmniejszala a jak jeden dotknie sciany to inne sie juz nie ruszają tylko zatrzymuja ?

Dzieki temu mialbym efekt jak w prawdziwych piłkarzykach :] .

 

Dzieki za pomoc.

Pozdrawiam wszystkich :bye1:

Ylebex

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

1. Tak jak juz firemark napisal, robisz nowego sprite'a ( wypełnione koło ) i podpinasz go obiektu jako mask, czyli maska kolizji.

 

2.

Information about object: pion

 

Sprite: sprite1

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent: <no parent>

Mask: <same as sprite>

 

Create Event:

execute code:

 

yy = 0;

 

End Step Event:

execute code:

 

y += yy;

yy = 0;

 

Keyboard Event for <Up> Key:

execute code:

 

if ( place_free ( x , (100017).y - 1 ) ) yy = -1; else yy = 0;

 

Keyboard Event for <Down> Key:

execute code:

 

if ( place_free ( x , (100020).y + 1 ) ) yy = 1; else yy = 0;

Stwórz u siebie takie same eventy i akcje w pionach tego samego typu (co stoja w jednej linii), tylko zmien 100017 na id piona o najwyzszej pozycji a 100020 na id piona o najnizszej pozycji. Id jest pokazywane na samym dole w oknie tworzenia planszy gdy najedziesz myszka na dany obiekt.

Odnośnik do komentarza
Udostępnij na innych stronach

Bardzo Wam dziękuję... :thumbsup:

Wieczorem (teraz praca :] ) wypróbuje.

Jutro zamieszcze screeny, gra będzie na dwóch graczy (na razie ) i stąd wynika jeszcze jedno moje pytanie:

Jeden gracz porusza swoich graczy strzałkami góra-dół, a drugi W-S.

Robię to na klockach bo jeszcze kodu nie do końca kumam. W klocku wpisuje, ze jak events->keyboard->up to start moving in a direction ^ z predkoscia 8. Analogicznie na dół i ruchy drugiego gracza.

Kiedy puszczam klawisz to zawodnicy sie zatrzymuja, ale jezeli drugi gracz w tym samym czasie naciska swoje to moi sie nie zatrzymuja.

Probowalem to zrobic jako 'no key' lecz gra nie widzi stopu ruchu bo drugi gracz gra w tym czasie.

Prosze o podpowiedz (nawet w formie zjeb... :boxed: za takie proste pytanie) ale to bardzo przeszkadza grac.

 

Wielkie dzieki z góry

Pozdrowienia dla Marmota i Ranma Mana.

I oczywiście Firemarka :D

Odnośnik do komentarza
Udostępnij na innych stronach

1 problem to robisz nowego spritera i dajesz go do objectu jako mask.

Witam Panów, :] dodatkowe małe pytanko. Czy mam maski użyć tylko na zawodnikach, piłce czy tu i tu, bo jest dużo lepiej ale jednak nie idealnie ?

Mogę na przykład wpaść bokiem rakietki na mijającą ją piłkę, zatrzymuje to ją (piłkę) a jak odjadę rakietką to rusza się dalej. I piłka i rakietka nie sa już solid.

Piłka ma jako maskę czarne koło (większe trochę od niej samej) z białym wypełnieniem. Może źle zrozumiałem jak robić tą maskę. Pomóżcie dobrzy ludzie. B) Dzięki.

 

rakietka = zawodnik (taki testowy :blink: )

Ylebex

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Chodzi o to byś w polu mask wybrał sprite z narysowanym kołem i przezroczystym tłem. Normalnie GM rysuje grafike i ustawia system kolizji na podstawie sprite'a, który się podłącz obiektom. W polu mask można wybrać sprite'a, na podstawie którego będzie ustalone pole kolizji obiektu.

 

Nie musisz robić maski piłce, ponieważ jest ona okrągła, więc pole kolizji takiego sprite'a jest wystarczające.

 

A co do zatrzymania się piłki itd. No i tu właśnie cały haczyk jest, bo taki bezbłędny system trzeba samemu sobie zrobić, napisać. :)

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