Roki Opublikowano 14 Czerwca 2009 Udostępnij Opublikowano 14 Czerwca 2009 Jak sprawdzić z której strony dotykam bloku? @E:Czy z dołu, góey, a może lewa czy prawa, platformówka. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 14 Czerwca 2009 Administratorzy Udostępnij Opublikowano 14 Czerwca 2009 Zwykłe równania, nie uczą tego na matematyce już? Np. jak jesteś z lewej, to Twoja pozycja X jest mniejsza od bloczku: if x<bloczek.x then jestem_z_lewej = true; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 14 Czerwca 2009 Autor Udostępnij Opublikowano 14 Czerwca 2009 Tylko, że tych bloczków na mapie jest cała masa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 14 Czerwca 2009 Udostępnij Opublikowano 14 Czerwca 2009 To zamiast w playerze sprawdzać pozycję względem bloczku to w każdym bloczku porównuj jego pozycję z pozycją gracza. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 14 Czerwca 2009 Autor Udostępnij Opublikowano 14 Czerwca 2009 Ehh.. no więc dałem kolizja z blokiem: GML with(other) //Sprawdzanie pozycji { if xelse if x>objBlockNormal.x then lewa = false and prawa = true and gora = false and dol = false else if y>objBlockNormal.y then gora = true and dol = false and prawa = false and lewa = false else if y} A step gracza: GML //Chodzenie if gora = true and dol = false { if keyboard_check(vk_left) { x-=4 sprite_index = sprTankLeft } else if keyboard_check(vk_right) { x+=4 sprite_index = sprTankRight } } else if gora = false and dol = true { if keyboard_check(vk_left) { x-=4 sprite_index = sprTankLeftUp } else if keyboard_check(vk_right) { x+=4 sprite_index = sprTankRightUp } } else if prawo = true and lewo = false { if keyboard_check(vk_left) { y-=4 sprite_index = sprTankGoingUpRight } else if keyboard_check(vk_right) { y+=4 sprite_index = sprTankGoingDownRight } } else if prawo = false and lewo = true { if keyboard_check(vk_left) { y+=4 sprite_index = sprTankGoingUpLeft } else if keyboard_check(vk_right) { y-=4 sprite_index = sprTankGoingDownLeft } } else if keyboard_check(vk_nokey) { speed=0 } Ale nie działa :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 14 Czerwca 2009 Udostępnij Opublikowano 14 Czerwca 2009 Powiedz nam co chcesz osiągnąć. Czy to sprawdzanie, po której stronie bloczku jesteś potrzebne ci tylko do tego by gracz się nie mógł ruszać w stronę bloczku? Ten twój kod wydaje się bez sensu. EDIT: Jeśli o to ci chodzi to zrób to po prostu mniej więcej tak: GML if(keyboard_check(vk_left) && !place_meeting(x-4,y,bloczek)) x-=4; else if(keyboard_check(vk_right) && !place_meeting(x+4,y,bloczek)) x+=4; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 14 Czerwca 2009 Administratorzy Udostępnij Opublikowano 14 Czerwca 2009 jeżeli sprawdzasz w bloczku, to po prostu if x>hero.x - i już wiesz, że hero jest z lewej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 14 Czerwca 2009 Udostępnij Opublikowano 14 Czerwca 2009 if place_meeting(x-1,y,obj_block) { strona = lewa } if place_meeting(x,y-1,obj_block) { strona = gora } if place_meeting(x+1,y,obj_block) { strona = prawo } if place_meeting(x,y+1,obj_block) { strona = dol } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 14 Czerwca 2009 Administratorzy Udostępnij Opublikowano 14 Czerwca 2009 Mylisz się. Jak stanę na środku obiektu, to wszystkie 4 warunki są spełnione. Zatem będzie wskazywało na dół. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 14 Czerwca 2009 Autor Udostępnij Opublikowano 14 Czerwca 2009 Chce zrobić łażenie po ścianach :D Ale tak, żeby był jeden bloczek i w zależności od której go dotkniemy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 14 Czerwca 2009 Udostępnij Opublikowano 14 Czerwca 2009 A nie możesz zrobić zmiennej "odbicie" i gdy wyniesie true(czyli chcesz spróbować się odbić) sprawdzasz, czy x>other.x itd? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 14 Czerwca 2009 Autor Udostępnij Opublikowano 14 Czerwca 2009 Dokładniej? Bo mi chodzi o chodzenie po ścianach, że jak dotknę ściany od prawej, to klikajac prawo ide w gore a sprite mam jak ide w gore. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 15 Czerwca 2009 Udostępnij Opublikowano 15 Czerwca 2009 Acha, no to wtedy.... GML if keyboard_check(vk_right) { if !place_meeting(x+ileśtam,y,o_blok) then x+=ileśtam if place_meeting(x+ileśtam,y,o_blok) then <akcja wspinaczki> } Pisałem z głowy jakby co. W taki sposób próbowałeś? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 15 Czerwca 2009 Udostępnij Opublikowano 15 Czerwca 2009 Wiesz, że mogłeś użyć zwykłego ELSE zamiast drugiego warunku? :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 15 Czerwca 2009 Udostępnij Opublikowano 15 Czerwca 2009 Jak piszę z głowy unikam else, bo nie mam do niego zaufania. Prawdopodobnie to przez mój "poziom", ale zdarzały mi się "psikusy" od strony else, a raczej przez else. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 15 Czerwca 2009 Autor Udostępnij Opublikowano 15 Czerwca 2009 Ehh... to wciąż nie to, bo to jest tak: normalnie chodze sobie po bloczku. jak dotkne go z lewej to wychodze pod gore klikajac prawo, a w dol klikajac lewo, ale ze zmiana sprite na wychodzacy z lewej. tak samo żeby było do góry nogami. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
boom Opublikowano 15 Czerwca 2009 Udostępnij Opublikowano 15 Czerwca 2009 //kolizja z bloczkiem GMLif(bloczek.x > x) y += sprite_get_height(blok); sprite_index = wchodz_lewo else y += sprite_get_height(blok); sprite_index = wchodz_prawo powinno działać aha jeszcze schodzenie czekaj bedzie problem... mam GML if(keyboard_check(vk_left)) { if(y > bloczek.y) { y -= sprite_get_height(s_blok) sprite_index = schodz_lewo } else { y += sprite_get_height(s_blok) sprite_index = wchodz_lewo } } if(keyboard_check(vk_right)) { if(y > bloczek.y) { y -= sprite_get_height(s_blok) sprite_index = schodz_prawo } else { y += sprite_get_height(s_blok) sprite_index = wchodz_prawo } } i powinno śmigać Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
47xxxxxxxx Opublikowano 15 Czerwca 2009 Udostępnij Opublikowano 15 Czerwca 2009 nie lepiej wyłączać gravitację?;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
boom Opublikowano 15 Czerwca 2009 Udostępnij Opublikowano 15 Czerwca 2009 nie lepiej wyłączać gravitację?;p po co skoro się nie wybijasz? :mellow: 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ę