micha_i Opublikowano 28 Grudnia 2011 Opublikowano 28 Grudnia 2011 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.
hudy0070 Opublikowano 28 Grudnia 2011 Opublikowano 28 Grudnia 2011 Return zdaje się jest sam w sobie breakiem?
Mentoss Opublikowano 28 Grudnia 2011 Opublikowano 28 Grudnia 2011 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.
micha_i Opublikowano 29 Grudnia 2011 Autor Opublikowano 29 Grudnia 2011 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)
Mentoss Opublikowano 29 Grudnia 2011 Opublikowano 29 Grudnia 2011 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ć...
micha_i Opublikowano 29 Grudnia 2011 Autor Opublikowano 29 Grudnia 2011 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
Mentoss Opublikowano 29 Grudnia 2011 Opublikowano 29 Grudnia 2011 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ół?
micha_i Opublikowano 29 Grudnia 2011 Autor Opublikowano 29 Grudnia 2011 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
Administratorzy gnysek Opublikowano 29 Grudnia 2011 Administratorzy Opublikowano 29 Grudnia 2011 break nie jest potrzebny po return.
Mentoss Opublikowano 29 Grudnia 2011 Opublikowano 29 Grudnia 2011 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.
micha_i Opublikowano 29 Grudnia 2011 Autor Opublikowano 29 Grudnia 2011 Dobra, udało mi się to naprawić, sory za kłopocenie was.
Rekomendowane odpowiedzi
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ę