Skocz do zawartości
micha_i

Uporczywy kod

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.

Udostępnij tego posta


Odnośnik do posta
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.

Udostępnij tego posta


Odnośnik do posta
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)

Udostępnij tego posta


Odnośnik do posta
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ć...

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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ół?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×