Skocz do zawartości

Jedno pytanie...


Athun

Rekomendowane odpowiedzi

Witam... Chcialbym zadac jedno pytanie...

strzelnicapolskazi4.png

Chce aby postac wraz z karabinem przesuwala sie maxymalnie o jakies 20stopni w dol i w gore... I zeby nie ruszala sie stacja Karabinu(Niewiem jak to sie dokladnie nazywa) Mam nadzieje ze mnie zrozumiecie :P

PS. Nie pozwalam uzywac grafiki bo bede na nich opieral swoj projekt... pozatym i tak sa slabe :D

Odnośnik do komentarza
Udostępnij na innych stronach

if direction> maks direction then

{direction=maks direction}

 

tak samo zrób z minimalnym :)

 

czyli

 

if direction > 20 then

{direction=20}

 

itd :)

 

Nie za bardzo zrozumialem... Moglbys lepiej objasnic ? Co gdzie dac i wogule...

Odnośnik do komentarza
Udostępnij na innych stronach

omg... naucz się troche programowania... przeciez wyraznie napisane. PRzetlumacze ci na pseudokod (chyba)

jeśli kierunek jest większy niż maxymalny kierunek
{kierunek równy jest maxymalny kierunek}

Jeśli kierunek większy niż 20
{kierunek równy jest 20}

 

przecież to banalne, dajesz coś takiego żeby sie robiło nonstop (step) i wtedy direction nie ma prawa byc wiekszy niż 20 lub max. kierunek

 

Dam jeszcze takie tłumaczonko:

Wszystko co jest napisane (wstawione) do STEP jest wykonywane raz na stepa (step to klatka). Stepów standardowo jest 30 na sekunde.

Czyli cały kod wstawiony do step zostanie przeczytany przez kompa 30 razy w ciagu sekundy. Komputer jakby czyta ten kod od gory do dolu. By łatwiej było pojać dam taki przykład.

Mamy skrypt w step:

dzielnik-=1;

if (dzielnik<1)
{dzielnik=1;}

zycie=100/dzielnik;

 

W tym kodzie dzielnik nigdy nie zejdzie ponizej 1, ponieważ kod jest czytany od góry do dołu, co oznacza ze jesli wartosc zmiennej dzielnik będzie ponizej 1 to za chwile lecac nizej wartosc ta zostanie skorygowana do "1". Co to nam daje? A no daje to że unikniemy errora z GMa dlatego że za chwile odbywa się dzielenie przez "dzielnik" a jak wiadomo dzielić przez 0 nie wolno.

 

zycie=100/dzielnik;

if (dzielnik<0)
{dzielnik=0;}

dzielnik-=1;

 

Tutaj wartosc dzielnik moze przekroczyc 1, co prawda zrobi to tylko na trwanie jednej klatki jednak w nastepnym stepie dzielnik stanie się juz zero, lecac od nowa od gory mamy juz dzielenie przez dzielnik, korekcja tej zmiennej ( if (dzielnik<0) {dzielnik=0;} )

następuje dopiero po dzieleniu, co oznacza ze po drodze wystąpi nam dzielenie przez 0 i w tym momencie mamy errora.

 

Myślę że dość jasno objaśniłem w jaki sposób komputer odczytuje nasz kod. Jak nie trudno po tej lekcji się domyśleć, kolejność w jakiej piszemy pewne sekwencje kodu ma znaczenie. Mam nadzieje że to pomoże w dalszej przygodzie z GMem xD

Odnośnik do komentarza
Udostępnij na innych stronach

Mwa ha, a ja wam udowodnię, że da się dzielić przez 0 ! To mój życiowy cel jest... Dostanę zJo*la z matematyki ! Mwa ha ha ha !!! (nie ma nobla z matematyki lol :P)

 

 

postac wraz z karabinem

To to karabin oO ?? Myslałem że jakiś łuk albo kusza xD

 

@Up.: Tak, tylko właściwie to niezależnie w jakim evencie napiszesz np. score += 1, to i tak będzie on dodawał 1 score co stepa... Jedynym wyjściem jest ustalenie warunku zakończenia, że np

if score < 2 { do score += 1 until score = 2 }

... Nie ma chyba innej rady, albo to robić na dwie zmienne albo na przeskoczki... ;/

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