Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Co w tym kodzie jest złego?

Kiedy uruchamiam grę , gra się zawiesza...

GML
{

for (yy=choose(288,256,224,192,160); yy<470; yy+=32) instance_create(xx,yy,oCube)

if yy>=470

{

xx+=32

event_user(0)

break

}

 

}

Opublikowano

A gdzie są nawiasy klamrowe przy bloku kodu występującym pod pętlą for? Inaczej instrukcja break nie ma żadnego sensu. Podobnie warunek przy ifie.

 

Kolejna ciekawostka: GM wymaga, przynajmniej zawsze wymagał, trzech średników przy pętli for.

Opublikowano

Poprawiłem:

GML
{

for (yy=choose(288,256,224,192,160); yy<470; yy+=32;) instance_create(xx,yy,oCube)

if yy>=470 and !xx>=608

{

xx+=32

event_user(0)

 

}

 

}

 

Nie zwiesza się, ale nie działa tak jak powinien

Opublikowano
Kolejna ciekawostka: GM wymaga, przynajmniej zawsze wymagał, trzech średników przy pętli for.

zawsze używałem dwóch średników i wszystko śmigało. również w starszych wersjach GMa.

Opublikowano

Dawno w GM nie siedzialem ale wdł mnie powinno być:

 

 

GML
{

for (yy=choose(288,256,224,192,160); yy<470; yy+=32) instance_create(xx,yy,oCube);

 

if (yy>=470 && !xx>=608)

{

xx+=32;

event_user(0);

}

}

jeżeli if jest poza pętlą lub jeżeli w tej pętli ten if ma być to napisz:

GML
{

for (yy=choose(288,256,224,192,160); yy<470; yy+=32)

{

instance_create(xx,yy,oCube);

 

if (yy>=470 && !xx>=608)

{

xx+=32;

event_user(0);

}

}

}

 

Przypomnijcie czy w GM bylo trzeba dawac na koncu sredniki. ; p

 

I daj errora jaki ci wyskakuje.

Opublikowano
zawsze używałem dwóch średników i wszystko śmigało. również w starszych wersjach GMa.

Mnie nie. Nawet zawsze uczyłem, że jest inaczej niż w innych językach. Zaraz to sprawdzę :P .

Opublikowano

Po co ten srednik na końcu? wyglada to conajmniej dziwnie.

Ja niedawno szukalem petli nieskonczonej i wstawiajac do petli while wartosc true tez doznawalewm zawiechy....az doszedlem do wniosku ze ... slusznie.

Program w GM teoretycznie nie idzie po kolei i nie zatrzymuje sie jego wykonywanie na petli for... on do niej wraca co chwile wiec wraca i wykonuje kolejny raz i kolejny i kolejny ... nie konczac poprzedniej petli..... Tak przynajmniej wykumalem w evencie STEP. Rozwiazanie? wstaw po prostu flage

if flaga then

{

twoja petla

{

}

flaga=false

}

 

dzieki czemu twoja petla wykona sie tylko raz.

Moge sie mylic ale chce pomóc :)

Opublikowano

A sprawdz czy deklarowałeś istnienie "xx", bo zauwasz ze go nie ma. ; p

 

Taxi@ Ty wiesz do czego ogulnie są średniki? Jak byś pisał w innych językach to byś wiedział, gm może patrzy na kolejną linię, ale lepiej zawsze ten średnik dać, rzeby nie było ew. problemów i on nie wygląda dziwnie, tylko jasno określa koniec pewnego działania.

 

I jescze poco mu kur* pętla która wykona się raz, pętla jest poto aby wykonywać coć wielokrotnie w ciągu jednej klatki i poto ona jest. O.o.

wdł. ciebie poco jest pętla?

Opublikowano

@Bluks: Działa tak samo jak mój

 

A kod miał generować kolumny oCuba losowej wysokości do końca room'u, a generuje tylko jedną!

Opublikowano

A jak generator to spoko, sam tera z generator się bawie.; p. zara ci to rozkminie i przerobie na GML.

ew. przerobie komentarz. ; )

 

weś odpal gierke i sprawdz w specjalnym okienku (chyba z tego co pamiętam to zamiast zielonej to czerwona strzałeczka), gdzie pokarze ci ilość obiektów, bo wydaje mi się, że ty je masz tylko, że ci generuje jeden na drugim, bo pozycja xx w pętli jest stała, zrub, aby np. za karzdym razem dodaławło nie tylko yy+=32, ale i xx+=32 wynik jeszcze nie ten, ale będzie pewność, że na siebie nie włążą. ; p.

 

To ma generować jedną kpt ma kolumne o wysokośći, jakiejś, czy ten skrypt ma generować kolumny losowej wysokości do końca prawej strony, bo zauważ, że on robi chyba tylko jedną z daną wyskokością, jeżeli, nie zatrzymujesz pętli, po końcu stepa, to daj, żeby dawało ci plus 32 na końcu stepa, a nie w pętli to będzie ci to w kułko robić, i daj if'a, jeżeli xx jest większy od szerokości ruma wtedy nie rub pętli, zaraz ci to spisze. ; )

 

kurcze zara zainstaluje GameMakera i wyślesz mi kawałek plika. ok? tylko na PW. Ja puki co to pisze z pamięci. ; p

 

EDIT2:

sprubuj tak:

GML
for (xx=0;xx<room_width;xx+1)

{

for (yy=choose(288,256,224,192,160); yy<470; yy+=32)

{

instance_create(xx*32,yy,oCube);

}

}

 

I pisz co ci nie pasi, albo na PW wyslij plika to będę wiedział, co konkretnie potrzebujesz, ew dawaj na GG jak masz. ; p

 

możecie mi przypomnieć poco ten event_user(0) do generowania tego?

Opublikowano
A kod miał generować kolumny oCuba losowej wysokości do końca room'u, a generuje tylko jedną!

 

GML
var yy;

yy=0

for(i=0;i<=room_width/32;i+=1){

yy=irandom_range(0,iles_tam)div 32*32

instance_create(i*32,yy,oCube)

}

Opublikowano

To generuje kolumne stałej wysokości(kolumny), na losowej wysokości(pozycji), a mu chodzi raczej, o kolumne losowej WYSOKOŚCI(kolumny), do końca rooma.

ALT@ Stary odpisz. ;p Bo ta niewiedza mnie dobija, a to prościzna.

Opublikowano

karol wlasnie mu podobne wyslalem. xD.

 

Jak by co gotowiec:

http://www.megafileupload.com/en/file/3417...aALTa-gm81.html (sprawdzone na avast i mcafe)

 

tylko zauwarz karol, że twój tworzy kolumny, o wysokości 15 - wartość losowa. ; p Sprawdzałem i jakoś tak mi wychodziło.

 

EDIT2:

mój sam kod w Create

GML
xx=0;

yy=0;

max_yy=0;

for (xx=0;(xx*32)<room_width;xx+=1)

{

max_yy=round(random_range(1,5));//5 to maksymalna wysokość kolumny, a 1 to minimalna

for (yy=0; (yy*32)<(max_yy*32); yy+=1)

{

instance_create(xx*32,room_height-yy*32,oCube);

}

}

Opublikowano

@bluks: Działa, ale chciałbym wiedzieć czemu w moim kodzie generowanie nie przechodziło do przodu tylko generowało jedno na drugim?

Opublikowano

Spoko.Jutro jak na kompa wejde(jeśli), to ci to dokładnie wytłumacze na PW, lub forum. ; ) I sorry, że tak późno, ale dziś czasu, żeby na kompa wskoczyć nie miałem. ;)

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