dev_diablo Opublikowano 7 Czerwca 2004 Udostępnij Opublikowano 7 Czerwca 2004 Jak zrobic aby moj bohater przesuwal skrzynke :P, mniej wiecej chodzi o taki ruch jak w "sokobanie". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Choosen Opublikowano 7 Czerwca 2004 Udostępnij Opublikowano 7 Czerwca 2004 Nie wiem wprawdzie co to jest "sokoban" ale wiem jak mozna przesunac skrzynke. Po wcisnieciu strzalki w bok mogą sie wykonac 3 rzeczy : 1) pozycja obok gracza jest pusta i postac sie przesunie 2) pozycja obok gracza jest zajeta, stoi tam skrzynka ale dalej nic nie ma wiec gracz przesunie skrzynke 3) pozycja obok gracza jest zajeta, obok stoi skrzynka ktorej jednak nie da sie przesunąc bo nie ma gdzie... 3 mozliwosci = 3 warunki. Sprawdzasz czy pozycja na ktorą chcesz sie przesunac jest wolna.. jesli tak to przesuwazs jesli sie to sprawdzasz dalej ( pierwszy if ) jesli to co zajmuje miejsce to skrzynka to sprawdzamy co stoi za skrzynką jesli nie to nie przesuwamy postaci ( drugi if ) i na koniec jesli za skrzynką nie bylo nic to przesuwamy siebie i skrzynke. Jasne ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dev_diablo Opublikowano 7 Czerwca 2004 Autor Udostępnij Opublikowano 7 Czerwca 2004 No tak, ale ja nie wiem jak zrobic zeby ta skrzynka sie wogole ruszala, no wiesz bo ja probowalem jakos to zrobic ale caly czas stoi skrzynka w miejscu :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 7 Czerwca 2004 Filar Społeczności Udostępnij Opublikowano 7 Czerwca 2004 (edytowane) create bohatera: przesuwaj = false; // nie jestesmy w trakcie przesuwania No i teraz w jakims zdarzeniu, skrypcie inicjujacym takiec cos: // czyli po wcisnieciu strzalki B) if (przesuwaj == false) // jesli nie jestesmy w trakcie przesuwania { alarm[0]=1; // za chwile bedziemy wykonywac alarm piksele=32; // ile pixeli w sumie sie przesuniemy przesuwaj = true; // zaczynamy sie przesuwac kierunek = 0; // w kierunku 0 czyli w prawo ale tu dla kazdej strzalki bedzie inaczej } Za kierunek podstawiasz 0/1/2/3 zaleznie od strony, w ktora ma sie przesunac skrzynka. alarm[0]: if ( piksele > 0 ) // jesli nie przeszlismy przez dlugosc calej kratki { piksele -=1; // zmniejszamy petle o 1 alarm[0]=1; // inicjujemy kolejną klatke switch (kierunek) // przesuwamy sie o 1 pixel w odpowiednia strone { case 0: x+=1; break; // prawo case 1: y-=1; break; // gora case 2: x-=1; break; // lewp case 3: y+=1; break; // dol } else { przesuwaj=false; // jesli to juz cala kratka to dalej sie nie przesuwamy } Skrypt nie bierze pod uwage obecnosci skrzynki. Jest to tylko sposob na plynne przesuniecie postaci o x pixeli w daną stronę ( i to dosc nietypowy jak dla mnie przyklad ;) ) Edytowane 7 Czerwca 2004 przez Choosen Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dev_diablo Opublikowano 8 Czerwca 2004 Autor Udostępnij Opublikowano 8 Czerwca 2004 Mam pewien problem, bo jak tak zrobilem to pacman przez skrzynke mi przechodzi, a pozatym to jak ide np nim w prawo to pozniej cala kratke dalej mi idzie (chyba to jest od tego piksele > 0). Ten kodzik dałem do bohatera czyli pacmana. Wiec jak mam zrobic aby dobrze dzialalo? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Choosen Opublikowano 9 Czerwca 2004 Udostępnij Opublikowano 9 Czerwca 2004 No... tak. Kod zakladal ze przesuwasz siebie i skrzynke o jedną całą kratke. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raval Opublikowano 9 Czerwca 2004 Udostępnij Opublikowano 9 Czerwca 2004 Tak mi sie wydaje że mógł byś spróbować tak w kolizji z obiektem który ma być przesunięty : { if keyboard_check(vk_left) { with (other) {x-=5}} if keyboard_check(vk_right) { with (other) {x+=5}} if keyboard_check(vk_up) { with (other) {y-=5}} if keyboard_check(vk_down) { with (other) {y+=5}} } :huh: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dev_diablo Opublikowano 9 Czerwca 2004 Autor Udostępnij Opublikowano 9 Czerwca 2004 Dzięki Raval, wlasnie o takie cos mi chodzilo, ale teraz mam jeden problem, że jak juz przesuwam tą skrzynke to moge rownoczesnie isc np. do gory. Jak mam zrobic ze gdy pcha w np. prawo to nie moze isc w gore i dół, no albo cos takiego :D 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ę