Mosiek Opublikowano 9 Sierpnia 2009 Udostępnij Opublikowano 9 Sierpnia 2009 Ja wiem,że było mnóstwo takich tematów,wiem bo szukałem i tylko jeden z nich mi działał jednak tam była coś z grawitacją nie wiem gdzie bo tylko jeden krótki kod przepisałem i nic tak o tym nie było, ale przejdźmy do tematu jakby mi ktoś mógł napisać/zrobić przykład skakania na platformy od dołu tak żeby na górze zostać główkowałem nad tym miałem parę przykładów wszystkie dokładnie z analizowałem jednak nie widziałem błędów jest godzina 2:00 tyle czasu główkowałem nad tym jednak nic nie dałem rady wymyślić jestem na słabym poziomie więc nie ma się co dziwić dlatego proszę was o napisanie mi takiego przykładu/kodu. Z góry dziękuje pozdrawiam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Saus Opublikowano 9 Sierpnia 2009 Udostępnij Opublikowano 9 Sierpnia 2009 Mozesz to zrobic 'od 2 stron'. Np. Przy kolizji platformy z bohaterem sprawdzac gdzie on jest i kod na kolizje dac dopiero po: GML if hero.y < y Czyli jesli bohater jest nad platforma. Mozesz zrobic na odwrot, przy kolizji bohatera z platforma - wtedy sprawdzasz czy platforma jest pod bohaterem (jej y jest wieksze od naszego y, analogicznie jak wyzej) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 9 Sierpnia 2009 Autor Udostępnij Opublikowano 9 Sierpnia 2009 Twój kod chyba jest dobry ale mam tak w evencie kolizji bohatera z platformą: GML if postac.y > y { move_contact_solid(270,4) vspeed = 0 } i nie mogę wskoczyć na platformę spod dołu a jak z boku na górę naskoczę to mi się postać zacina i w ogóle chodzić nie mogę tzn. jak dotknę platformy . Próbowałem jeszcze tak ale jest to samo: GML if postac.y > y then solid = true; else solid = false; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pan123 Opublikowano 9 Sierpnia 2009 Udostępnij Opublikowano 9 Sierpnia 2009 Wiesz co to jest gml, naucz się go. Masz dużo przykładów, dokumentację. Szukanie nie powoduje urazu mózgu ani innych tego typu rzeczy :-) Rażąca ortografia i brak jakiegokolwiek poszanowania dla zasad interpunkcji po raz drugi. Warn. I będą następne dopóki się nie poprawisz. Z grubsza poprawione. :/ Platyna Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Morro Opublikowano 9 Sierpnia 2009 Udostępnij Opublikowano 9 Sierpnia 2009 Tak samo jak i zainstalowanie Firefoxa, który automatycznie podkreśli błąd ortograficzny. musisz jeszcze przy kolizji wyłączyć grawitację, bo inaczej ciągle będzie się zacinać na platformach GML if postac.y > y { move_contact_solid(270,4) vspeed = 0 gravity=0 } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Saus Opublikowano 9 Sierpnia 2009 Udostępnij Opublikowano 9 Sierpnia 2009 Warunek GML if postac.y > y w kolizji bohatera z platforma jest bez sensu, w ogole nie zrozumiales Musisz sprawdzac czy platforma jest nizej. GML if platform.y > y (to w bohaterze) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 9 Sierpnia 2009 Autor Udostępnij Opublikowano 9 Sierpnia 2009 YY, nic nie pomogło ;/ dalej się zacina może jakiś inny kod na to jest? miałem jeden który działał ale właśnie miał grawitacje wyłączoną da się to zrobić z grawitacją?? Tamten kod to był: GML if( !place_free( x, y ) ) { if( vspeed >= 0 ) { while( !place_free( x, y ) ) y -= 1; vspeed = 0; } } w evencie end step czy da się włączyć grawitacje w tym kodzie?? i czy będzie to działało z grawitacją dałem taki kod i normalnie się odbijał od platformy tak jak wcześniej bez :if obj_block.y > y kod wygląda tak: GML if obj_block.y > y { move_contact_solid(270,4) vspeed = 0 gravity=0 } edit: Dobra powiedzmy, że sobie poradziłem użyłem takiego kodu w evencie end step: GML if( !place_free( x, y ) ) { if( vspeed >= 0 ) { while( !place_free( x, y ) ) y -= 1; gravity = 0.5; vspeed = 0; } } tylko że jak przytrzymam klawisz skoku to przy kolizji mogę skoczyć podwójnie ;P Jest też taki problem który jest opisany na obrazku bardzo proszę o pomoc Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 10 Sierpnia 2009 Udostępnij Opublikowano 10 Sierpnia 2009 można by jeszcze zrobić że jeżeli vspeed < 0 to nie robi nic, a jak >0 to normalnie to co w kolizji miałeś Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 10 Sierpnia 2009 Autor Udostępnij Opublikowano 10 Sierpnia 2009 tzn jak usunąć end step cały i dać w kolizji z obj_block if vspeed > 0 {i tamten kod} czy jak/? bo nie za bardzo zrozumiałem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 10 Sierpnia 2009 Udostępnij Opublikowano 10 Sierpnia 2009 w kolizji masz move_contact_solid i cośtam jeszcze chyba :P zamiast tego daj: if vspeed<0 exit; else { move_contact_solid itd. } jeszcze ustaw bohaterowi deptha mniejszego niż platformie, bo głupio by wyglądało jakby sie chował za nią :P PS. nie testowałem tego nigdy ale chyba powinno działać :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 13 Sierpnia 2009 Autor Udostępnij Opublikowano 13 Sierpnia 2009 Sorry, że odświeżam po długim czasie ale nie bawiłem się z tym kodem na razie dzisiaj sprawdziłem i Thobby twój kod nie działa :P ustawiłem go tak GML if vspeed<0 exit; else { move_contact_solid(270,4) vspeed = 0 } w kolizji z obj_block który w tym przypadku jest platformą. Nie działa bo nie przechodzi przez platformę tylko się odbija po prostu:P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matyxon Opublikowano 13 Sierpnia 2009 Udostępnij Opublikowano 13 Sierpnia 2009 Może spróbuj wyłączać i włączać solid Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 13 Sierpnia 2009 Autor Udostępnij Opublikowano 13 Sierpnia 2009 w jaki sposób sprawdzając pozycje tak jak saus mówił?? bo nie do końca zrozumiałem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 13 Sierpnia 2009 Udostępnij Opublikowano 13 Sierpnia 2009 Musisz wziąć pod uwagę origin y twojej postaci i jej wysokość sprite'a :/ Jak ty inaczej chciałeś to zrobić? Przykładowo jeżeli wysokość sprite'a to 10 a y origin masz na środku to będzie GML if (y>hero.y+5) { solid=true; } Tyle w obiekcie podłoża w step, a w herosie w evencie kolizji bohateraz z tym obiektem GML if (solid==true) { move_contact_solid(270,4); vspeed=0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 13 Sierpnia 2009 Autor Udostępnij Opublikowano 13 Sierpnia 2009 origin postaci mam na 0 to źle? a tak czy inaczej zrobiłem tak jak kazałeś i nie działa może coś źle zrobiłem? w każdym razie nie działa :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 13 Sierpnia 2009 Udostępnij Opublikowano 13 Sierpnia 2009 Bo pewnie zrobiłeś źle. Nie wiem ile należy dodać do y skoro nie wiem jakiej wysokości jest sprite. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 14 Sierpnia 2009 Autor Udostępnij Opublikowano 14 Sierpnia 2009 sprite jest wysokości 32 px. napisałeś w przykład na 10 no to logicznie pomyślałem i jak napisałeś 5 to zamiast 5 napisałem 16 aż taki głupi nie jestem może coś źle zrobiłem to mi wytłumacz Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 14 Sierpnia 2009 Udostępnij Opublikowano 14 Sierpnia 2009 No nie wiem czy jesteś czy nie jesteś, bo ja napisałem też, że w moim przykładzie origin Y jest na środku a u ciebie jest na 0 czyli na początku... odejmij 32 lub 33 żeby było z zapasem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 14 Sierpnia 2009 Autor Udostępnij Opublikowano 14 Sierpnia 2009 że jak origin na 33x 33y? jeśli tak to dałem tak i mimo to nie działa weź mi może przykład zrób będę wiedział jak to zrobić :P może jednak jestem głupi chociaż nie to za mocne słowo xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 14 Sierpnia 2009 Udostępnij Opublikowano 14 Sierpnia 2009 Nie, masz zamiast 5 dodać 33, a nie ustawiać origina. Boże, czy to jest aż takie trudne... chociaż nie to za mocne słowo xD Oj nie wiem, nie wiem... <_< Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 15 Sierpnia 2009 Udostępnij Opublikowano 15 Sierpnia 2009 https://gmclan.org/up199_11_przenikalne_platformy.html - trzymaj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 15 Sierpnia 2009 Autor Udostępnij Opublikowano 15 Sierpnia 2009 Dzięki wszystko jest ok :P tylko problem mam takiego typu że potwór mi spada mimo to że z kolizją z tym obiektem ma cały czas GML move_contact_solid(270,4) vspeed = 0 chyba nie powinien spadać... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 15 Sierpnia 2009 Udostępnij Opublikowano 15 Sierpnia 2009 Ja piernicze co wszyscy zawsze z tą czwórką... To moim zdaniem powinno być move_contact_solid(270,vspeed); Nie wiem czy to przez to, ale to też jakieś błędy może powodować. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 15 Sierpnia 2009 Autor Udostępnij Opublikowano 15 Sierpnia 2009 OK ale mam jeszcze inny problem jak już kiedyś w innych tematach wspominałem mam na mapie 3 postacie które sobie mogę wybrać i jak zrobić żeby dla każdej z nich był tak jakby inny solid tego obiektu bo jak jedna stoi to solid jest true i druga wyjść nie może da się coś takiego zrobić?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 15 Sierpnia 2009 Udostępnij Opublikowano 15 Sierpnia 2009 tym ktore stoja wylaczac solid? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 15 Sierpnia 2009 Autor Udostępnij Opublikowano 15 Sierpnia 2009 Chodzi mi o to że mam 3 postacie jak jedna wyjdzie na platformę to druga nie może wskoczyć ponieważ platforma jest solid a jak nikt nie stoi to jedna może normalnie wyjść a jak już wyjdzie no to dzieje się to co wcześniej powiedziałem a co do tego 0 w move_contact_solid to i tak potwór spadł :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Danielus Opublikowano 15 Sierpnia 2009 Udostępnij Opublikowano 15 Sierpnia 2009 najprosciej będzie zrobic 3 platformy i kazda bedzie odpowiadala innemu bohaterowi(robisz 3 tak samo wygladajace platformy i jeden typ ustawiasz w roomie i w dreate tego typu dajesz zeby tworzyl jeszcze pozostale 2 w miejscu w ktorym sam jest) potem ustawiasz tylko zeby na kazdego bohatera dzialala inna platforma Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 15 Sierpnia 2009 Udostępnij Opublikowano 15 Sierpnia 2009 Albo zrobić własną grawitacje i własne hsp/vsp i wtedy nie bawić się w solidy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 15 Sierpnia 2009 Udostępnij Opublikowano 15 Sierpnia 2009 Wiedziałem, że zaraz wystrzeli z takim problemem i zacząłem robić przykład nie operujący na solidach. Niestety chyba nie zdążę skończyć. Dziś wyjeżdżam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mosiek Opublikowano 15 Sierpnia 2009 Autor Udostępnij Opublikowano 15 Sierpnia 2009 Ok dzięki :P zrobiłem tak jak powiedział Danielus ponieważ własnej grawitacji i hsp/vsp nie za bardzo wiem jak zrobić a nawet jeśli to nie wiem jak wykorzystać ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi