I am Lord Opublikowano 23 Grudnia 2011 Udostępnij Opublikowano 23 Grudnia 2011 Zastanawiam się jak mając ds_listę ( o nieokreślonej wielkości ) wypełnioną spritami wyświetlić ją w postaci tabeli o szerokości max 6 kolumn i wysokości 1 lub więcej. Tak jak miniatury w oknie exploratora windows: Pewnie jest na to jakiś prosty algorytm ale chyba jestem na to za głupi :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 23 Grudnia 2011 Udostępnij Opublikowano 23 Grudnia 2011 GML pos = 0 for(i=1;i<=3;i+=1) { for(j=1;j<=6;j+=1) { if pos<=ds_list_size(ind) { draw_sprite(ds_list_find_value(ind, pos), 0, j*32+5, i*32+5) pos += 1 } } } Jeśli coś się nie zgadza poprawcie mnie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 23 Grudnia 2011 Autor Udostępnij Opublikowano 23 Grudnia 2011 Dzięki po 3 poprawkach działa idealnie: GML pos = 0; for( i = 0; i < ceil( ds_list_size(ind)/6 ); i += 1 ) for( j = 0; j < 6; j += 1 ) { if ( pos <= ds_list_size(ind)-1 ) { draw_sprite( ds_list_find_value(ind, pos), 0, j*32+5, i*32+5 ); pos += 1; } } EDIT: a jednak trzeba było dodać jeszcze ceil(ds_list_size( ind)/6) bo liczba wierszy miała być nieokreślona Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 23 Grudnia 2011 Udostępnij Opublikowano 23 Grudnia 2011 GML a = (ds_list_size(lista) div szerokość_kolumny)+1 for(i = 0; i < a; i += 1) for(j = 0; j < szerokość_kolumny; j += 1) { if(j+(i*szerokość_kolumny) > ds_list_size(lista)) break draw_sprite(ds_list_find_value(lista,j+(i*szerokość_kolumny)),-1,j*32,i*32) } Nie sprawdzałem, ale powinno działać. 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ę