Skocz do zawartości

Uporczywy kod


micha_i

Rekomendowane odpowiedzi

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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)

Odnośnik do komentarza
Udostępnij na innych stronach

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

Odnośnik do komentarza
Udostępnij na innych stronach

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

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