micha_i Opublikowano 28 Grudnia 2011 Udostępnij 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. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Skowron1993 Opublikowano 28 Grudnia 2011 Udostępnij Opublikowano 28 Grudnia 2011 Zamiast break - exit; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
hudy0070 Opublikowano 28 Grudnia 2011 Udostępnij Opublikowano 28 Grudnia 2011 Return zdaje się jest sam w sobie breakiem? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 28 Grudnia 2011 Udostępnij 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. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
micha_i Opublikowano 29 Grudnia 2011 Autor Udostępnij 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) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 29 Grudnia 2011 Udostępnij 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ć... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
micha_i Opublikowano 29 Grudnia 2011 Autor Udostępnij 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 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 29 Grudnia 2011 Udostępnij 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ół? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
micha_i Opublikowano 29 Grudnia 2011 Autor Udostępnij 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 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 29 Grudnia 2011 Administratorzy Udostępnij Opublikowano 29 Grudnia 2011 break nie jest potrzebny po return. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 29 Grudnia 2011 Udostępnij 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. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
micha_i Opublikowano 29 Grudnia 2011 Autor Udostępnij Opublikowano 29 Grudnia 2011 Dobra, udało mi się to naprawić, sory za kłopocenie was. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
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ę