Prodayle Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Witam, to znowu ja (po chyba 2 latach rozlaki xD Postanowilem powrocic do game makera. Po raz pierwszy zajrzalem do dokumentacji i udalo mi sie przeczytac prawie cala (zartuje ledwo przeczytalem dzial gameplay, co nie znaczy ze nie przeczytam reszty) I mam problem, a nawet dwa. Po pierwsze chcialbym zebyscie sprawdzili ten kod i pomogli mi naprawic blad z klinowaniem sie glownego bohatera na scianach GML if place_free(x,y+1) { gravity = 0.5; } else { gravity = 0; } if keyboard_check(vk_left) { hspeed=-3; sprite_index = hero_left; image_speed = 0.3; } else if place_free (x,y+1) = false { hspeed=0; sprite_index = hero_stand image_speed = 0.3 } if keyboard_check(vk_right) { hspeed=3; sprite_index = hero_right; image_speed = 0.3; } else if place_free (x,y+1) = false { hspeed=0; sprite_index = hero_stand image_speed = 0.3 } if keyboard_check(vk_space) and place_free (x,y+1) = false { vspeed = -10; } if collision_point(x,y,solid,prec,totime)// <----- no i co tam kurna wpisac??? // i co tu wpisac zeby postac sie tam tak niemilosiernie nie klinowala</span></span> dziala calkiem dobrze gdyby nie to ze postal moze chodzic tylko w prawo, na lewo klawisz nie reaguje przy kolizji z blokiem oczywiście: GML move_contact_solid(270,4) // co znaczy te 4? :> vspeed = 0 Po drugie chcialbym abyscie mi wytlumaczyli jak wygladaja argumenty w collision_point... wielkie dzieki i przepraszam ale jestem tutaj pseudo nowy i staram sie nie bazowac na przykladach (teraz oczywiscie bede musial) tylko sam odkrywac gml i pisac po swojemu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Skoro sprawdzasz place free to zamiast hspeed=3 daj x+=3 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cordoba Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Wycentruj origin sprite, to pomoże. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 coz nie pomaga :/ postac zatrzymuje sie na scianie jak skocze w jaj kierunku poza tym nie chodzi w lewa strone! :D edit: ok pomoglo :D zrobilem cos takiego: GML if keyboard_check(vk_left) { x-=3; // zmienilem hspeed na x- sprite_index = hero_left; image_speed = 0.3; } else if place_free (x,y) = false // zmienilem y+1 na y, w sumie nie wiem co to za roznica { hspeed=0; sprite_index = hero_stand image_speed = 0.3 } if keyboard_check(vk_right) { x+=3; sprite_index = hero_right; image_speed = 0.3; } else if place_free (x,y) = false { hspeed=0; sprite_index = hero_stand image_speed = 0.3 dobrze jeden problem rozwiazany, dzieki :D ale pojawily sie 3 kolejne: jak daje y+1 wtedy sprity nie zmieniaja sie tak jak powinny kiedy ide w lewa strone jak daje samo y ludek sie zatrzymuje jak puszcze klawisz ale jego sprite nie zmienia sie na hero_stand no i co tym collision_point? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cordoba Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Zapodaj plik .gmk to może coś się poradzi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 jak pan sobie życzy... 10 minut później... a jak tu sie uploaduje? :D aha i jeszcze jedno, fakt ludek nie klinuje sie juz na scianach ale zmienia kierunek, tzn. skacze ludkiem na pionowa sciane a od razu po dotknieciu scniany leci w dol :/ nie mozna zrobic tak zeby sciana nie ingerowala w poczynania ludka, byle by tylko nie mogl do niej "wejsc"? https://gmclan.org/up6094.html dobrze to zrobilem? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Wchodzisz tu https://gmclan.org/up.html i klikasz Przejdź do swojego katalogu(chyba, albo utwórz swój katalog jakoś tak ;) ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 16 Sierpnia 2011 Administratorzy Udostępnij Opublikowano 16 Sierpnia 2011 co do collision_point, to nie zadne totime, a not me, czyli po polsku "Nie mnie". Ustawiasz na true, jeśli sprawdzasz kolizję z tym samym typem obiektu i nie chcesz, aby wykrywał sam siebie za kolizję, w pozostałych przypadkach false. Prec oznacza czy sprawdzać kolizje precyzyjnie (per-pixel) czy po tak jak z nieprecyzyjną maską (prostokątną, ograniczoną x i y najbardziej wystających fragmentów maski) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 STEP: GML image_speed = 0.3; if place_free(x,y+1) { gravity = 0.5; } else { gravity = 0; } if keyboard_check(vk_left) { x-=3; sprite_index = hero_left; } if keyboard_check(vk_right) { x+=3; sprite_index = hero_right; } if !keyboard_check(vk_left) && !keyboard_check(vk_right) { sprite_index = hero_stand } if keyboard_check(vk_space) and !place_free (x,y+1) { vspeed = -10; } EDIT:Zamień move_contact_solid(270,6) na move_contact_solid(270,3) ta 2 wartość to szybkość "ześlizgiwania się", bez tego będzie się klinował. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 super :) nie wiedzialem ze z image speedem tak mozna, poza tym nie wiem dlaczego twoj sposob chodzi a moj nie :P jeszcze pozostal ostatni problem, cytat: "aha i jeszcze jedno, fakt ludek nie klinuje sie juz na scianach ale zmienia kierunek, tzn. skacze ludkiem na pionowa sciane a od razu po dotknieciu scniany leci w dol :/ nie mozna zrobic tak zeby sciana nie ingerowala w poczynania ludka, byle by tylko nie mogl do niej "wejsc"?" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 if vspeed >=0 { move_contact_solid(270,4) vspeed = 0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 ah wielkie dzieki ale jest jeszcze jeden problem (no sorry :D, ale to nie ode mnie zalezy) gdy podchodze do sciany potrafie (przyciskajac spacje) wjechac nia do gory xD probowalem pokombinowac troche z x'ami i y'ami ale bez skutku... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cordoba Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Myślę, iż to pomoże: GML (Daj ten kod w miejscu gdzie klikasz space) if !place_free(x,y+1) { // kod na skok } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Ale ten kod jest wyżej, więc po co to piszesz? if keyboard_check(vk_space) and !place_free (x,y+1) { vspeed = -10; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cordoba Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Sorry, ale nie czytałem twoich odpowiedzi na ten temat, więc pewnie dlatego to napisałem. ;x Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 przciez wlasnie tak mam ustawione... chodzi mi o to ze jak skieruje ludka do sicny i przysisne spacje to on po niej wchodzi... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Proszę: GML if keyboard_check(vk_space) and collision_point(x,y+17,object1,1,1) { vspeed = -10; } Ps: te 17 jest dlatego że liczę od środka sprita(orign) do jego dołu i dodaję 1. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 dziekuje, naprawde dziala wysmienicie chociaz chwile... kurde nic nigdy nie jest doskonale gdy skacze moja postacia ona na chwile jakby zacina sie przed uderzeniem w sufit (bloczki nad nia), potem na chwile sie zacina bedac juz przy suficie i normalnie spada troche to dziwne i nad wymiar irytujace nie moge sie z tym uporac w create mam: GML skok = true w step mam: GML image_speed = 0.3; // Poczatkowe okreslenie szybkosci animacji sprite'a // Grawitacja if place_free(x,y+1) { gravity = 1 } else { gravity = 0; } // Klawisz w lewo if keyboard_check(vk_left) { x-=3; sprite_index = hero_left; } //Klawisz w prawo if keyboard_check(vk_right) { x+=3; sprite_index = hero_right; } if !keyboard_check(vk_left) && !keyboard_check(vk_right) { sprite_index = hero_stand } // Klaiwsz spacji if keyboard_check(vk_space) and collision_point(x,y+17,object1,1,1) and skok = true { vspeed = -20; } // Brak animacji w powietrzu if place_free (x,y+1) image_speed = 0 // Zasada skakania if keyboard_check_pressed (vk_space) skok = false if keyboard_check_released (vk_space) skok = true sorki za opisy ale potrzebuje ich bym sie pozniej nie pogubil w collision z object1 (oczywiscie to bloczek i jest solid) mam: GML if vspeed >=0 { move_contact_solid(270,5) vspeed = 0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Po co zmienna skok? przecierz jest niepotrzebna. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 tak dla jaj :P zeby skakal raz na jedno przycisniecie klawiatury niewazne, bo bez niej tez ten dosyc dziwny blad wystepuje Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Spróbuj tak: GML if(vspeed !=0) { if(vspeed>0) { move_contact_solid(270,vspeed) vspeed = 0; } else { move_contact_solid(90,-vspeed) vspeed=1; } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 to powiedz mi prosze jak to wstawic i co usunac bo powoli zaczynam sie gubic Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Wstaw to do collision z object1 zamiast tamtego co jest. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 znowu powraca problem ze postac zawraca w dol gdy dotknie sciany, ponadto zlatuje w dol bardzo powoli :/ o czywiscie jesli kieruje ludzika do sciany ludzie naprawde, malo co sie znam na gierkach ale chcialbym miec taki system sterowania bez zadnym skaz, spowolnien, zacinajacych i tnacych sie obiektow w ktorym wszystko gladko chodzi ja na przyklad w grze podziemia&podziemia autorstwa jednego (lub nawet paru) tutejszego forumowicza edit: dobrze przywrocilem stary kod, ale problem pozostal, chciaz wszystko inne jest ok. to co mi poradzisz? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Bo ten kod candiego jest bez sensu i nie dotyczy tego problemu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 To jak chcesz żeby szybciej zlatywał, to zwiększ wartość vspeed np na 10. Postać zawsze Ci będzie zlatywała w dół/albo wlatywała, ponieważ Twoja postać po prostu wbija się w ścianę. Wtedy wykonywany jest kod w collision with sciana. Musisz dodać warunek w sterowaniu aby uniemożliwić postaci wchodzenie na ścianę. Tam gdzie masz x+=3;/x-=3; zamień na: GML //==x+=3; na if(place_free(x+3,y)) x+=3; //===x-=3; na if(place_free(x-3,y)) x-=3; Wtedy postać nie będzie wbijać się w ścianę. gdy skacze moja postacia ona na chwile jakby zacina sie przed uderzeniem w sufit (bloczki nad nia), potem na chwile sie zacina bedac juz przy suficie i normalnie spada Czyżby ediepl? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 ok...(to jednak przywracam jego kod z powrotem :P) TAK TAK TAK jestes boski!!! dzieki!!! ACZKOLWIEK kolejny problem :P i to chyba naprawde ostatni postac uderzajaca (gdy skacze) w sufit odbija sie dużo przed sufitem :( i to sporo, nie wiem czemu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Lol nadal nie o to chodzi, umiesz czytać?? gdy skacze moja postacia ona na chwile jakby zacina sie przed uderzeniem w sufit (bloczki nad nia), potem na chwile sie zacina bedac juz przy suficie i normalnie spada Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Prodayle Opublikowano 16 Sierpnia 2011 Autor Udostępnij Opublikowano 16 Sierpnia 2011 Lol nadal nie o to chodzi, umiesz czytać?? stary, ten problem sie rozwiazal i jest jeszcze lepiej niz bylo :P ale j/w jest jeszcze jeden problem edit: candy, tak o to PRAWIE chodzilo, chdzi mi jeszcze o przedwczesne odbijanie sie od sufitu, na oko jakies 15-20 pikseli, ale mam 13 lat i nie jestem w tym dobry :D (nie to ze sie usprawiedliwiam) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 16 Sierpnia 2011 Udostępnij Opublikowano 16 Sierpnia 2011 Ja jak miałem problem przy skakaniu postaci, dałem mniej więcej taki kod, który podałem wcześniej i było po problemie. Ja to zrozumiałem tak, że o to chodziło. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę