Skocz do zawartości

Kolejny prosty błąd...


Vianom

Rekomendowane odpowiedzi

Witam. Mam problem z moim ludkiem na którego składa się :głowa, nogi(głowny obiekt), tułów. Zrobiłem w każdej części ciała :D warunek że gdy mają kolizje z murem to mają stać. Lecz tylko główny obiekt ( bo on ma w create- tworzenie innych części ciała) zatrzymuje się,a reszta przenika . Jakieś pomysły? Z góry dzięki.

 

lollolo5yj.th.jpg

 

Tak na wszelki wypadek

Odnośnik do komentarza
Udostępnij na innych stronach

Ja zawsze inaczej robię... Tworzę KWADRATOWY (lub PROSTOKĄTNY) obiekt, który odpowiedzialny jest za wszystkie akcje, kolizje występujące w grze. Następnie tworzę SPRITE'y i ustawiam je w STEP'ie na odpowiednich pozycjach co do obiektu głównego (tego KWADRATU). Na koniec odznaczam VISIBLE w opcjach obiektu KWADRATU. Taki trick (jeśli można to tak nazwać) jest wykorzystywany w prawie wszystkich grach platformowych :). Dzięki temu unikniesz zbędnych bugów w grze, m.in. zawieszania się postaci na końcach platform :P Pozdrawiam!

Odnośnik do komentarza
Udostępnij na innych stronach

No to tak:

 

W objektach "glowa", "cialo" i "noga" usuwasz całą kolizję z obiektem "trawa";

 

W objekcie "noga" w evencie 'Left' zamiast klocka warunkowego (niebieski), dajesz klocek warunku (niebieski ze znakiem zapytania) i jako warunek wpisujesz w nim:

!collision_line(x-13,y-152,x-13,y+33,trawa,true,true)

 

To samo robisz w evencie 'Right', tyle, że wpisujesz kod:

!collision_line(x+13,y-152,x+13,y+33,trawa,true,true)

 

W objekcie "noga" w evencie 'Up' zamiast klocka warunku (niebieski), dajesz klocek warunku (niebieski ze znakiem zapytania) i jako warunek wpisujesz w nim:

instance_position(x,y+36,trawa)

 

W objekcie "noga" w evencie 'Step' dajesz kod:

if (collision_line(x,y+34,x,y+34+vspeed+1,trawa,true,true))
   {
   vspeed=0;
   }
if (collision_line(x,y-153,x,y-153+vspeed,trawa,true,true))
   {
   vspeed=2;
   }

 

W objekcie "noga" w evencie 'Step' zamiast klocka warunku (niebieski), dajesz klocek warunku (niebieski ze znakiem zapytania) i jako warunek wpisujesz w nim:

!(instance_position(x,y+36,trawa))

 

Czyli mini silnik platwormówki :]

 

I proponuje żebyś nauczył się operować kodem, bo klocki bardzo zaniżają możliwości GMa.

Odnośnik do komentarza
Udostępnij na innych stronach

Jak to mój sposób nie działa? Przecież KOLIZJE i inne akcje dajesz dla obiektu KWADRAT, który jest niewidoczny. A nogi, tułów, ręce, głowę itp. ustawiasz na pozycji względem KWADRATU...

 

Czyli np.

 

[NOGI]

y = kwadrat.y;
x = kwadrat.x;

 

[TUŁÓW]

y = kwadrat.y - 40;
x = kwadrat.x;

 

[GŁOWA]

y = kwadrat.y - 70;
x = kwadrat.x;

 

Powtarzam, że wszystkie kolizje (zatrzymanie się postaci gdy zderza się z np. drzewem), akcje (zbieranie kasy itp.) i inne rzeczy USTAWIASZ DLA OBIEKTU KWADRAT...

 

Edited:

 

Dodam też (na wszelki wypadek), że ruch (lewo, prawo itp.) też dajesz dla obiektu KWADRAT... Czyli na chłopski rozum: Ten KWADRAT jest Twoją postacią, a te SPRITE'y (głowa, tułów, nogi) są tylko maską (nakładką) na ten KWADRAT.

Odnośnik do komentarza
Udostępnij na innych stronach

@ Maximal - Sorry, ale nie wiem o co chodzi w tym przykładzie.

 

@ Zakol - Taa działa dzięki! Jeśli ukończę grę ( bo nigdy nic nie wiadomo) wpiszę Cię w creditsy.

 

@ fino25 - Po prostu robiłem jak napisałeś i nic wciąż ten sam błąd...

 

 

Bardzo dziękuję wszystkim którzy odpowiedzieli na moje pytanie!!! :*

Odnośnik do komentarza
Udostępnij na innych stronach

Napewno nie robiłeś tak jak Ci napisałem, bo to jest proste i działa na 100%, nie ma prawa nie działać... Jak ustawisz wszystkie części postaci na określonych pozycjach względem kwadratu w STEPIE, to zawsze, ale to ZAWSZE będą tam się znajdywać... Ehh, no cóż, może kiedyś ktoś inny skorzysta z tego sposobu. Pozdrawiam!

 

Edited:

 

Co do przykładu Maximala - L O L... Chłopcze, nie rób lepiej przykładów...

 

@ Maximal - Sorry, ale nie wiem o co chodzi w tym przykładzie.

 

L O L 2... O nic w nim nie chodzi - nie ma żadnych akcji, jest tylko jakaś grafika (jakieś figury geometryczne), nie ma nawet Room'a...

Odnośnik do komentarza
Udostępnij na innych stronach

L O L 2... O nic w nim nie chodzi - nie ma żadnych akcji, jest tylko jakaś grafika (jakieś figury geometryczne), nie ma nawet Room'a...
Room jest, akcje też są. Jakby ktoś choć zerknął w kod, to spostrzegłby, że jesyt ludzik zrobiony z 4 elementów (bądź co bądź, jest to ludzik, nie chciało mi się ladniej rysować :P). Gdy ludzik dochodzi do ściany, zatrzymuje się. A Vianom o ile mi wiadomo, miał problem z zatrzymaniem, bo tułów się zatrzymywał, a kończyny lecialy gdzieś dalej.
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ę...