Skocz do zawartości

kierunek ruchu zależny od rzutu kością


Niran

Rekomendowane odpowiedzi

Witajcie,

 

Tworzę grę w rzucie ala bomberman i mam wielki problem osoby początkującej.

Mianowicie potrzebuję stworzyć w kodzie taki schemat:

 

postać porusza się o 32 punkty (szerokość jednej kratki) w tempie =x w jakimś kieruku np. w prawo po czym zatrzymuje się, losuje 1 z 4 kierunków i znów porusza się o 32 punkty w wylosowanym kierunku itd.

 

Czy byłby ktoś tak miły i mógłby mi w tej kwestii pomóc?

Z góry bardzo dziękuję :)

Odnośnik do komentarza
Udostępnij na innych stronach

To jest taki przykład:

GML
jakaszmienna = round(choose(1,2,3,4));

switch(jakaszmienna)

{

case 1:

y=y-32;//W górę

break;

case 2:

y=y+32;//W dół

break;

case 3:

x=x-32;//W lewo

break;

case 4:

x=x+32;//W prawo

break;

}

Wybiera liczbę z przedziału 1 do 4, po czym idzie w wybranym kierunku

Odnośnik do komentarza
Udostępnij na innych stronach

wstawiłem coś takiego, nie rozumiem tylko czemu:

-postać zawsze korzysta z case 2 i 4 ?!

-porusza się strasznie wolno i skokowo

 

GML
losowy_kierunek = choose(1,2,3,4);

 

switch(losowy_kierunek)

{

case 1:

y-=1;//W górę

if y=-64 then break; //przesuwa się w lini prostej o 64px i konczy case

case 2:

y+=1;//W dół

if y=64 then break;

case 3:

x-=1;//W lewo

if x=-64 then break;

case 4:

x+=1;//W prawo

if x=64 then break;

 

}

 

jakaś sugestia ?

Odnośnik do komentarza
Udostępnij na innych stronach

bardzo ci dziekuje, dawno sie tak nienasmialem. nic w zlym :) rozchmurzylesz moj zly dzien

 

problem jest prosty , pomysl co program robi

GML
losowy_kierunek = choose(1,2,3,4);

//vybiera kierunek

switch(losowy_kierunek) // stosuje wybor kierunku do case

{

case 1:

y-=1;//W górę

if y=-64 then break; //przesuwa się w lini prostej o 64px i konczy case

// tu mowi jesli JEST y inne niz -64 to zrob case 2, inaczej ukoncz case 1

case 2:

y+=1;//W dół

if y=64 then break;

// tu mowi jesli JEST y=64 to zrob case 3, inaczej ukoncz case 2

case 3:

x-=1;//W lewo

if x=-64 then break;

// tu mowi jesli JEST x powyzej -64 to zrob case 2, inaczej ukoncz case 3

case 4:

x+=1;//W prawo

if x=64 then break;

// tu mowi jesli JEST x powyzej -64 to zrob case 2, inaczej ukoncz case 4 dalej nic niema to i tak konczy

}

z tego wychodzi, ze jezeli y niejest na -64 to niemoze isc w gore

i jesli x niejest na -64 tez niemoze isc do lewa

niemogo dlatego ze w rzeciwistosci ido! ALE zaraz wracajo do punktu wyjsca :) x-1+1=x

 

dlaczego rusza tylko w dol lub?

dlatego ze jak jest 3 to y=y1 i x=x+1-1

 

dlaczego rusza tylko w dol w prawo?

dlatego ze jak jest 4 to x=x+1

 

chyba chciales zarownac ruch objektu do siatky, ale break v if ci pokzyzowal plany.

jezeli das jesce jeden break; pod koniec case to x, y poprawnie zmieni sie o 1 pix, ale ruch w siatce to co innego :)

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