Skocz do zawartości

Drabina i problem bohater na końcu drabiny spada w dół


Cygnus

Rekomendowane odpowiedzi

Dzień dobry

 

Mam sobie obiekt niewidzialny par_climbable drabinkę,którą nakładam na dany obiket po którym chcę,żeby był drabiną.

No i wszystko ładnie działa bohater wchodzi do góry ,ale jak już jest na samej górze,to zamiast się zatrzymać na krawędzi drabiny,to spada w dół,chyba,że szybko nacisnę przycisk down na klawiaturze to się zatrzyma,ale to głupio wygląda...

Co zrobić żeby on normalnie na końcu drabiny zatrzymywał się i nie spadał?

coś pewnie z grawitacją,patrzyłem tu na forum różne przykłady,ale to nic nie pomogło...

 

w obiekcie par_climbable nie mam nic on tylko służy po to by nakładać go na dany obiekt czy scenerie mapy ,która ma być stać się drabinką

 

tu część stepu bohatera

 

STEP

 

GML
//Wspinanie sie

if place_meeting(x,y,par_climbable) && place_meeting(x,y-32,par_climbable) && place_meeting(x,y+32,par_climbable) && attClock <= 0 && (keyboard_check(kUp) || keyboard_check(kDown)) {

climbing = true;

vspd = 0;

hspd = 0;

}

}

//Wspinanie sie

if climbing == true {

var __hsign = keyboard_check(vk_right)-keyboard_check(vk_left);

var __vsign = keyboard_check(vk_down)-keyboard_check(vk_up);

 

hspd = min(max(hspd+__hsign,-2),2);

vspd = min(max(vspd+__vsign*2,-4),4);

 

if __vsign == -1 && !place_meeting(x,y-32,par_climbable) {

climbing = false;

vspd = -10;

}

 

if __hsign != 0 {

image_xscale = __hsign;

}

 

if !place_meeting(x,y,par_climbable) || !place_meeting(x,y+32,par_climbable) {

climbing = false;

}

}

 

 

w Create bohatera

 

GML
climbing = false;
Odnośnik do komentarza
Udostępnij na innych stronach

Zawijaj wiersze.

Ciężko to wyczytać.

 

 

Koniec drabiny musi być obsługiwany przez jakieś zachowanie bohatera, które masz pod przyciskiem w dół i musi być trigger, który sam to wywoła.

Na przykład można oskryptować takie zachowanie i jeśli pomiędzy last step a new step jest że drabina była, a nie ma to trzeba poszukać podłogi.

 

To że bohater spada w dół to sukces. Często pierwsze drabiny wysyłają go na orbitę :)

Odnośnik do komentarza
Udostępnij na innych stronach

Zawijaj wiersze.

Ciężko to wyczytać.

 

 

Koniec drabiny musi być obsługiwany przez jakieś zachowanie bohatera, które masz pod przyciskiem w dół i musi być trigger, który sam to wywoła.

Na przykład można oskryptować takie zachowanie i jeśli pomiędzy last step a new step jest że drabina była, a nie ma to trzeba poszukać podłogi.

 

To że bohater spada w dół to sukces. Często pierwsze drabiny wysyłają go na orbitę :)

 

 

 

tak mam i triggera,który jest platformą tzw duchem nakładam go na górną część drabiny,no ok wygląda dobrze,nawet wtedy jak wejdę do góry to nie spada po drabinie,ale problem jest wtedy,kiedy pórbuje zejść..naciskam klawisz down no i od razu spada,chyba,że szybko to zatrzymam to swobodnie schodzi z drabiny,ale to nie o to chodzi...on ma normalnie po niej schodzić...a nie w taki sposób;)

Odnośnik do komentarza
Udostępnij na innych stronach

tak mam i triggera,który jest platformą tzw duchem nakładam go na górną część drabiny,no ok wygląda dobrze,nawet wtedy jak wejdę do góry to nie spada po drabinie,ale problem jest wtedy,kiedy pórbuje zejść..naciskam klawisz down no i od razu spada,chyba,że szybko to zatrzymam to swobodnie schodzi z drabiny,ale to nie o to chodzi...on ma normalnie po niej schodzić...a nie w taki sposób;)

 

W złą stronę kombinujesz. Co jeśli z jakiegokolwiek urojonego powodu bohater nie dostanie zwrotki z końca drabiny? Bo na przykład próbkowanie ma zbyt rozległe? (to się dzieje jak coś ruszy bohatera).

 

Bohater musi mieć zapis że jest w trybie włażenia po drabinie, a przynajmniej był i właśnie nie jest, i że należy przeprowadzić audyt w sprawie jakiejś podłogi. (na przykład szuka drabiny z której leci).

Takie dane pobierasz ze stanu zachowania boahatera tam montujesz triggery wykluczania i wkluczania w fizykę (podłóg).

 

Koncepcja tworzenia bloków końcowych wynika z NESowej zajętości przestrzeni na bardzo dużych blokach przy prędkości maksymalnej jednego bloku w jednostce próbkowania zajętości.

Jeśli nie korzystasz z takiej mechaniki to musisz te dane prowadzić ze strony obiektu bohatera. To od bohatera wymagasz ciągłości zdarzeń - drabina - podłoga.

Wyzwalacz końca drabiny ma ręce i nogi w takiej mechanice gdy wejście na drabinę i poruszanie po niej jest oskryptowane bez ingerencji gracza (czyli może rozpoznać początek drabiny i kliknąć że włazi, albo nie kliknąć, a jak kliknie to do końca jedzie po szynach).

 

Za tydzień powinien mieć dostęp do gms to mogę Ci przysłać działającego gotowca.

O ile pamiętam (kilka lat temu to robiłem), to po rozpoznaniu że drabina była, że dalej się wspina, a drabiny nie ma w promieniu testu szukał sobie podłogi, żeby na nią wleźć i rozpoczynał animację włażenia przez krawędź.

 

Teraz mam na tapecie 3d gdzie już w sposób sterowalny postać łazi po murze góra dół i wertykalnie po przejściu w tryb climbing i przełącza sterowanie z pród/tył na góra dół. To by mogło być rozwiązanie które by Ci pasowało, jeśli na drabinę można wskoczyć i można z niej zeskoczyć.

 

 

Masz rozpiskę ciągłości stanów bohatera? (character finite state of the machine)?

 

//w jeszcze innym projekcie mam point_distance zbliżenia do drabiny co jest trigerem dla skryptu wyrzucającego ikonę włażenia na drabinie, a dalej po szynach, przy czym długość drabiny nie wynika ze skryptu, to już character dokonaje rozrachunku czy drabina jest, czy starczy włażenia.

 

Bierz pod uwagę, że wiele takich funkcji po mnożeniu (zazwyczej interupt triger przerywający akcję przed jej zakończeniem, jak wybuch, napaść, pułapka) będzie wymagała podobnego mechanizmu szukania sobie miejsca do posadzenia d przez character i rozpoczęcia jakiejś akcji (choćby i leżenia nieprzytomnym).

 

Czyli każda akcja będzie zawierać pole konsekwencji legalnych i zabronionych.

 

//jeśli zależy Ci na ruchu po drabinie góra dół, to warto zrobić pole drabiny działające wyłącznie na animację postaci, a z drabiny robiącą serię półek do wskakiwania, które w trigerze tej animacji będą powiązane ze "skokiem" w górę i w dół o szczebel. To bardzo arcadowe rozwiązanie zeplatformówek strzelanek.

Odnośnik do komentarza
Udostępnij na innych stronach

W złą stronę kombinujesz. Co jeśli z jakiegokolwiek urojonego powodu bohater nie dostanie zwrotki z końca drabiny? Bo na przykład próbkowanie ma zbyt rozległe? (to się dzieje jak coś ruszy bohatera).

 

Bohater musi mieć zapis że jest w trybie włażenia po drabinie, a przynajmniej był i właśnie nie jest, i że należy przeprowadzić audyt w sprawie jakiejś podłogi. (na przykład szuka drabiny z której leci).

Takie dane pobierasz ze stanu zachowania boahatera tam montujesz triggery wykluczania i wkluczania w fizykę (podłóg).

 

Koncepcja tworzenia bloków końcowych wynika z NESowej zajętości przestrzeni na bardzo dużych blokach przy prędkości maksymalnej jednego bloku w jednostce próbkowania zajętości.

Jeśli nie korzystasz z takiej mechaniki to musisz te dane prowadzić ze strony obiektu bohatera. To od bohatera wymagasz ciągłości zdarzeń - drabina - podłoga.

Wyzwalacz końca drabiny ma ręce i nogi w takiej mechanice gdy wejście na drabinę i poruszanie po niej jest oskryptowane bez ingerencji gracza (czyli może rozpoznać początek drabiny i kliknąć że włazi, albo nie kliknąć, a jak kliknie to do końca jedzie po szynach).

 

Za tydzień powinien mieć dostęp do gms to mogę Ci przysłać działającego gotowca.

O ile pamiętam (kilka lat temu to robiłem), to po rozpoznaniu że drabina była, że dalej się wspina, a drabiny nie ma w promieniu testu szukał sobie podłogi, żeby na nią wleźć i rozpoczynał animację włażenia przez krawędź.

 

Teraz mam na tapecie 3d gdzie już w sposób sterowalny postać łazi po murze góra dół i wertykalnie po przejściu w tryb climbing i przełącza sterowanie z pród/tył na góra dół. To by mogło być rozwiązanie które by Ci pasowało, jeśli na drabinę można wskoczyć i można z niej zeskoczyć.

 

 

Masz rozpiskę ciągłości stanów bohatera? (character finite state of the machine)?

 

//w jeszcze innym projekcie mam point_distance zbliżenia do drabiny co jest trigerem dla skryptu wyrzucającego ikonę włażenia na drabinie, a dalej po szynach, przy czym długość drabiny nie wynika ze skryptu, to już character dokonaje rozrachunku czy drabina jest, czy starczy włażenia.

 

Bierz pod uwagę, że wiele takich funkcji po mnożeniu (zazwyczej interupt triger przerywający akcję przed jej zakończeniem, jak wybuch, napaść, pułapka) będzie wymagała podobnego mechanizmu szukania sobie miejsca do posadzenia d przez character i rozpoczęcia jakiejś akcji (choćby i leżenia nieprzytomnym).

 

Czyli każda akcja będzie zawierać pole konsekwencji legalnych i zabronionych.

 

//jeśli zależy Ci na ruchu po drabinie góra dół, to warto zrobić pole drabiny działające wyłącznie na animację postaci, a z drabiny robiącą serię półek do wskakiwania, które w trigerze tej animacji będą powiązane ze "skokiem" w górę i w dół o szczebel. To bardzo arcadowe rozwiązanie zeplatformówek strzelanek.

 

masz rację...źle kombinuje...

oj dobrze by było jakbyś mi podesłał pod game maker studio

dzięki z góry,do tej pory będe kombinował;)

ciekawa teoria..

robię platformówkę,więc drabina nie musi być skomplikowana..

Odnośnik do komentarza
Udostępnij na innych stronach

masz rację...źle kombinuje...

oj dobrze by było jakbyś mi podesłał pod game maker studio

dzięki z góry,do tej pory będe kombinował ;)

ciekawa teoria..

robię platformówkę,więc drabina nie musi być skomplikowana..

 

To nie teoria, to praktyka. W teorii drabina jest prosta jak konstrukcja cepa. Potem dochodzi podły gracz-wielki generator gliczów i równie wredny gameplay i jest kaszan.

Nie wiem jaką robisz grę i jak wymyśliłeś próbkowanie przestrzeni. Dlatego podaję potencjalne zgrzyty na jakie się natkniesz przy różnych podejściach.

 

Za parę dni chyba będę w Polsce to wykopię coś z kompa pod GMs.

 

Komplikacja drabiny nie wynika z tego czy to jest platformówka czy nie, tylko z warunków jej działania:

-czy start jest oskryptowany i po szynach na górę; <<tutaj odłączasz graczowi kontrolę i jest spokój, jak jeszcze na gameplayu nic nie grozi graczowi to raczej się uda

-czy jest interrupt i można zawrócić;

-czy gracz sam łazi po drabinie i w jakim zakresie (góra dół, prawo lewo);

-czy może z niej skakać, strzelać, inne akcje;

-czy na drabinie można zginąć;

 

Jak widzisz pole wejściowych generuje przestrzeń wyjściowych i dlatego specjalne tryby ruchu generują takie problemy.

Każde odklejenie postaci od podłoża to takie właśnie zagadki :)

Odnośnik do komentarza
Udostępnij na innych stronach

To nie teoria, to praktyka. W teorii drabina jest prosta jak konstrukcja cepa. Potem dochodzi podły gracz-wielki generator gliczów i równie wredny gameplay i jest kaszan.

Nie wiem jaką robisz grę i jak wymyśliłeś próbkowanie przestrzeni. Dlatego podaję potencjalne zgrzyty na jakie się natkniesz przy różnych podejściach.

 

Za parę dni chyba będę w Polsce to wykopię coś z kompa pod GMs.

 

Komplikacja drabiny nie wynika z tego czy to jest platformówka czy nie, tylko z warunków jej działania:

-czy start jest oskryptowany i po szynach na górę; <<tutaj odłączasz graczowi kontrolę i jest spokój, jak jeszcze na gameplayu nic nie grozi graczowi to raczej się uda

-czy jest interrupt i można zawrócić;

-czy gracz sam łazi po drabinie i w jakim zakresie (góra dół, prawo lewo);

-czy może z niej skakać, strzelać, inne akcje;

-czy na drabinie można zginąć;

 

Jak widzisz pole wejściowych generuje przestrzeń wyjściowych i dlatego specjalne tryby ruchu generują takie problemy.

Każde odklejenie postaci od podłoża to takie właśnie zagadki :)

 

Wobec tego chylę czoła ;) takiej wiedzy praktycznej;)

 

hmmm... z tych odnośników to praktycznie wszystko u mnie jest zrobione..

-można zginąć na drabinie;)

-gracz chodzi po drabinie wtedy,kiedy ja nim steruje klawisze góra,dół

-chodzi o programowy interrupt?

u mnie gracz nie może skakać z drabiny na drabinę i strzelać będąc na drabinie,ale to akurat nie jest mi potrzebne,ma być trudniej;)

Odnośnik do komentarza
Udostępnij na innych stronach

Wobec tego chylę czoła ;) takiej wiedzy praktycznej;)

 

hmmm... z tych odnośników to praktycznie wszystko u mnie jest zrobione..

-można zginąć na drabinie;)

-gracz chodzi po drabinie wtedy,kiedy ja nim steruje klawisze góra,dół

-chodzi o programowy interrupt?

u mnie gracz nie może skakać z drabiny na drabinę i strzelać będąc na drabinie,ale to akurat nie jest mi potrzebne,ma być trudniej;)

 

Dziękuję.

Interrupt obsługiwany przez gameplay.

Bo character raczej coś tam animowany trochę jest, grawitacja na niego działa, ma wartość, zwrot, coś tam go zjeść może.

 

Czyli opisujesz sobie (w głowie lub na kartce) jaki jest warunek rozpoznania że drabina jest a jaki że jej nie ma. Odradzam warunek że jak nie drabina to na pewno podłoga, postać być może skacze, być może łazi po czymś jeszcze.

Jeśli jest to jaki warunek jest rozpoczęcia włażenia, a jaki że nie włazić <<to zrobiłeś z pewnością dotąd.

Jak już włazić to jak daleko iść i na jaki rozkaz od gracza czekać << to jest ruch góra dół który zrobiłeś

Czy badać czy podłoga jest na dole, czy jest na górze, czy z boków (platforma) <<tu masz pierwszy zgrzyt - nie szuka podłogi na górze

Jeśli podłoga jest to z automatu się tam przemieścić (wkurzające - postać będzie się przestawiać z drabiny na mijane platformy i sama złazić na podłogę jak szybko nie dasz ku górze). Czy też na komendę?

Czy bezwarunkowo dokonywać skakania z drabiny?

 

Czy strzelanie sprawdza kontakt z podłogą i grawitację? Jeśli tak to strzelanie z drabiny nie jest zdarzeniem tym samym co strzelanie na podłodze.

 

Musisz te warunki badać i jakoś obsłużyć. Albo badać i zabronić.

 

Koniec drabiny proponuję wtedy zrobić tak - jeśli w zasięgu obiektu kończącego drabinę u góry, i poprzedni krok "był na drabinie i szedł do góry" i kontroler gracza wskazuje "do góry" (wczytane z klawiatury/pada/joysticka) >> przemieść na pozycję obiektu końca drabiny i ustaw postać w pozycji "stoi" albo "idzie".

 

Czerwony warunek jest istotny, ponieważ w przypadku potworów łażących po platformie gracz może zechcieć wrócić, a nie z musu wyjść z drabiny prosto na wroga i kląć na sterowanie.

 

Co jeśli postać ginie? Trup położy się na płasko w miejscu gdzie postać zginęła w powietrzu? Czy trup obsługuje grawitację?

Czy ewentualnie jest animacja "trup na drabinie"?

 

 

Generalnie drabiny są wkurzające, dlatego leniwi twórcy zrobili wall jump i wall slide oraz kominowe lokacje do włażenia w ten sposób ^^

Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuję.

Interrupt obsługiwany przez gameplay.

Bo character raczej coś tam animowany trochę jest, grawitacja na niego działa, ma wartość, zwrot, coś tam go zjeść może.

 

Czyli opisujesz sobie (w głowie lub na kartce) jaki jest warunek rozpoznania że drabina jest a jaki że jej nie ma. Odradzam warunek że jak nie drabina to na pewno podłoga, postać być może skacze, być może łazi po czymś jeszcze.

Jeśli jest to jaki warunek jest rozpoczęcia włażenia, a jaki że nie włazić <<to zrobiłeś z pewnością dotąd.

Jak już włazić to jak daleko iść i na jaki rozkaz od gracza czekać << to jest ruch góra dół który zrobiłeś

Czy badać czy podłoga jest na dole, czy jest na górze, czy z boków (platforma) <<tu masz pierwszy zgrzyt - nie szuka podłogi na górze

Jeśli podłoga jest to z automatu się tam przemieścić (wkurzające - postać będzie się przestawiać z drabiny na mijane platformy i sama złazić na podłogę jak szybko nie dasz ku górze). Czy też na komendę?

Czy bezwarunkowo dokonywać skakania z drabiny?

 

Czy strzelanie sprawdza kontakt z podłogą i grawitację? Jeśli tak to strzelanie z drabiny nie jest zdarzeniem tym samym co strzelanie na podłodze.

 

Musisz te warunki badać i jakoś obsłużyć. Albo badać i zabronić.

 

Koniec drabiny proponuję wtedy zrobić tak - jeśli w zasięgu obiektu kończącego drabinę u góry, i poprzedni krok "był na drabinie i szedł do góry" i kontroler gracza wskazuje "do góry" (wczytane z klawiatury/pada/joysticka) >> przemieść na pozycję obiektu końca drabiny i ustaw postać w pozycji "stoi" albo "idzie".

 

Czerwony warunek jest istotny, ponieważ w przypadku potworów łażących po platformie gracz może zechcieć wrócić, a nie z musu wyjść z drabiny prosto na wroga i kląć na sterowanie.

 

Co jeśli postać ginie? Trup położy się na płasko w miejscu gdzie postać zginęła w powietrzu? Czy trup obsługuje grawitację?

Czy ewentualnie jest animacja "trup na drabinie"?

 

 

Generalnie drabiny są wkurzające, dlatego leniwi twórcy zrobili wall jump i wall slide oraz kominowe lokacje do włażenia w ten sposób ^^

 

Dziękuje

 

Co do animacji ginącego bohatera,to zrobiłem 2 rodzaje jeden to:

 

-jak bohater ginie od ciosów zadanych przez wrogów i obiektów,które strzelają

-jak bohater ginie ,kiedy spadnie na kolce itp pułapki

 

Już na samej drabinie posłużyłem się animacją tą jak bohater umiera od ciosów zadanych przez wrogów,i to wystarczy w zupełności;) bo roboty od groma jest z rysowaniem całej animacji bohatera.

Ale ogólnie działa trup na drabinie;)

 

Czego nie mam,a no tego:

 

Czy badać czy podłoga jest na dole, czy jest na górze, czy z boków (platforma) <<tu masz pierwszy zgrzyt - nie szuka podłogi na górze

Czy strzelanie sprawdza kontakt z podłogą i grawitację? Jeśli tak to strzelanie z drabiny nie jest zdarzeniem tym samym co strzelanie na podłodze ( z tym,że to akurat nie jest aż takie istotne)

 

Bohater ma tylko wyczuć,że jest podłoga na końcu drabiny,a nie spadać..obecnie używam na górze drabiny platformy ghost..fakt zastępuje mi to chwilowo podłogę,ale to nie jest dobre rozwiązanie,a no dlatego,że jak chcę zejść z powrotem z drabiny na dół..to fakt naciskam klawisz na dół on szybko spada i jeszcze raz muszę nacisnąć klawisz dół,wtedy się zatrzymuje i spokojnie schodzi po drabinie..

Odnośnik do komentarza
Udostępnij na innych stronach

...

 

Bohater ma tylko wyczuć,że jest podłoga na końcu drabiny,a nie spadać..obecnie używam na górze drabiny platformy ghost..fakt zastępuje mi to chwilowo podłogę,ale to nie jest dobre rozwiązanie,a no dlatego,że jak chcę zejść z powrotem z drabiny na dół..to fakt naciskam klawisz na dół on szybko spada i jeszcze raz muszę nacisnąć klawisz dół,wtedy się zatrzymuje i spokojnie schodzi po drabinie..

 

A to prawidłowo, to już dzieje się to co chcesz. W dół bohater spadając musi rozpoznać drabinę samemu wyręczając Cię w klikaniu klawisza (na przykład keyboard_key_press(key); w spadaniu na początek).

Animacji istotnie jest od groma, zawsze. Dlatego gry najlepiej tworzyć zespołowo.

 

Skoro podłoga na razie w górę drabiny jakkolwiek działa, to tak to zostaw, z pewnością natkniesz się na podobny problem w dalszym tworzeniu fizyki i rozwiążesz je wspólnym mianownikiem. Jedną funkcją czepiania się bliskiej podłogi.

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