Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Witam.

Czy mógłby ktoś naprawić/ewentualnie usprawnić poniższy kod?:

 

GML
if global.j = floor(room_height/32){

return (-1)

break;

}

 

if global.j > (floor((1/5)*floor(room_height/32))){

return (choose(0,1,2,3,4))

break;

}

 

if global.j <= (floor((1/5)*floor(room_height/32))) and global.j > ((floor(room_height/64)+5)){

return (choose(0,5))

break;

}

 

if global.j <= ((floor(room_height/64)+5)){

return (5)

break;

}

global.j to zmienna przechowująca wiersz dla obiektów generowanych na mapie(zmniejsza się aż do zera)

floor(room_height/32) to operacja dzieląca room na punkty dla obiektów(i to też jest max dla global.j).

W maksymalnym j ma zwracać -1, potem losuje cyfry od 0-4 aż do 1/5 z maksymalnego j.

Potem losuje cyfry 0 lub 5 aż do j=floor(room_height/64)+5

wtedy, aż do j=floor(room_height/64)

zwraca 5.

Z góry Thx.

Opublikowano

Gówno prawda. Nie mam zielonego pojęcia, co wg. Cb miałby ten break robić, ale jeżeli to jest osobny skrypt każdy return i tak przerywa ci wykonywanie kodu, więc sam break już nie jest wykonywany i zamiana na exit jest tak samo bezcelowa, jak obecność owego breaka. Nie rozumiem z jakiej racji miałoby losować "aż do j=floor(room_height/64)+5", ale jeżeli tak, to ok. Ogólnie nie ogarniam koncepcji, ale wydaje mi się, że kod jest zgodny z tym, co napisałeś.

 

Edit: @hudy: Otóż to.

Opublikowano

Dobra, napisze wam, o co mi w całej koncepcji chodzi.

Plansze podzieliłem na global.i i na global.j. są to zmienne przechowujące wybraną kolumnę(i) oraz wiersz(j)(cuś jak tablica, tylko na planszy.)

Na tej tablicy są stawiane obiekty wg. tego właśnie wzoru, który wam podałem. i zaczyna się od 0 i dodaje się aż dojdzie do floor(room_width/32).

wtedy ono się zeruje, a od j odejmuje 1, i od nowa.W każdym punkcie na tej pseudo-tabeli wykonuje tamten skrypcik,dostając numer, którego używa do stworzenia obiektu. aktualnie obiekty przypisane do numerów 0,1,3,4 są takie same, 2 to inny obiekt, a -1 to jeszcze inny. 5 to ten sam co 2(ale to sie zmieni)

Opublikowano

Czyli wartości planszy mają wyglądać tak??:

0 5 5 0 5 0 // 1/5 maxa

1 0 4 2 3 1

3 2 1 4 0 2 // Środkowa część choose(0,1,2,3,4);

1 4 3 2 1 3

x x x x x x// max -> tu x=-1, bo -1 nie mieściło się w ładnej "tabelce"

 

Nie wiem tylko skąd globalj=floor(room_height/64)+5; i gdzie to będzie wypadać...

Opublikowano

zapomniałem powiedzieć, że skrypt dochodzi do połowy rooma(od dołu). ostatnie pięc linijek(j)ma zwracać 5, pierwsza linijka zwraca -1,nad pierwszą aż do 1/5 rooma zwraca 0,1,2,3,4, potem losuje 0 lub 5 aż do tych 5 ostatnich linijek

E:

cuś takiego:

 

5 5 5 5 5

5 5 5 5 5

5 5 5 5 5

5 5 5 5 5

5 5 5 5 5

0 5 0 5 0

0 5 0 5 0

0 5 0 5 0

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

0 1 2 3 4

-1-1-1-1-1

Opublikowano

Tabelka na górze wygląda tak:

0 -> 1/3 j=5

1/3+1 -> 2/3 j=choose(0,5);

2/3+1 -> koniec j=choose(0,1,2,3,4);

ostatnie linijka j=-1;

 

Edit: patrze na Twój post... wszystko zajmuje od połowy rooma w dół?

Opublikowano

Tak, od połowy.

to ma wyglądać tak:(połowa rooma to 0)

j między 0 a 5 = 5

od 5 do 1/5 maksymalnego j = choose(0,5)

poniżej choose(0,1,2,3,4)

i ostatnia -1

Opublikowano

Ty jak coś napiszesz to tracę pewność co do swojej daty urodzenia. Już myślałem, że wiem, jak chcesz, a teraz nie wiem nawet jak myślałem. Jak możesz to ładnie krok po kroku na warstwy rozpisać to pomogę. Teraz nie dam rady, bo nie ogarniam.

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