XivroX Opublikowano 6 Listopada 2008 Udostępnij Opublikowano 6 Listopada 2008 Przejdę do rzeczy: jak zrobić, aby jak zrobiłem sobie GML inventory[5,10]=0 to wtedy wyszukiwało następną w kolejności PUSTĄ (czyli z wartością 0) zmienną w tej tablicy? i żeby podawało mi jej (nazwę?numer?) Dziękuję za ewentualne odpowiedzi. :rolleyes: EDIT: Tzn. Zeby wyszukiwało następną zmiennę x, a jak x będą zajęte to wtedy do następnego y czyli: na początku wyszukuje mi inventory[1,1] później inventory[2,1] (...) a później inventory[5,1]. I przechodzi dalej, tak że następna wyszukana to będzie inventory[1,2] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 6 Listopada 2008 Udostępnij Opublikowano 6 Listopada 2008 Zagnieżdżona pętla for w pętli for, jeśli chodzi o dwuwymiarową tablice. Sprawdzasz czy inventory[x,y] == 0 jeżeli tak zwróć nazwę zmiennej. Potem już robisz co chcesz. Napisałbym ci, ale muszę iść, może potem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 6 Listopada 2008 Udostępnij Opublikowano 6 Listopada 2008 GML key = -1; for( i = 0; i < inventorySize; i += 1 ) { if( inventory[i,1] == 0 ) { key = i; break; } } show_message( 'Indeks pierwszego pustego pola: ' + string( key ) ); EDIT Aaaa... to dwuwymiarowa. GML keyX = -1; keyY = -1; for( xx = 0; xx < inventorySizeX; xx += 1 ) { for( yy = 0; yy < inventorySizeY; yy += 1 ) { if( inventory[xx,yy] == 0 ) { keyX = xx; keyY = yy; break; } } } show_message( 'Indeks pierwszego pustego pola: ' + string( keyX ) + 'x' + string( keyY ) ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 6 Listopada 2008 Udostępnij Opublikowano 6 Listopada 2008 Tymon, ja też tak myślałem, ale to będzie sprawdzać na ukos ([1,1],[2,2] itd.) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 6 Listopada 2008 Udostępnij Opublikowano 6 Listopada 2008 Tak, serio? GML keyX = -1; keyY = -1; for( xx = 0; xx < inventorySizeX; xx += 1 ) { yy = xx; if( inventory[xx,yy] == 0 ) { keyX = xx; keyY = yy; break; } } show_message( 'Indeks pierwszego pustego pola: ' + string( keyX ) + 'x' + string( keyY ) ); A to? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 6 Listopada 2008 Autor Udostępnij Opublikowano 6 Listopada 2008 Z tym pierwszym kodem były problemy, lecz zamieniłem na drugi. Wszystko działało bardzo dobrze.Wyszukało, że pierwszym pustym polem był 0x0. Kiedy jednak zapełniłem to pole wartością 1 wyskoczył błąd: ___________________________________________ ERROR in action number 1 of Keyboard Event for A-key Key for object object0: Error in code at line 7: if( global.inventory[xx,yy] == 0 ) at position 17: Unknown variable inventory or array index out of bounds Wcześniej działał. Dopiero jak global.inventory[0,0] zmieniłem na 1 to zaczął wywalać :confused: EDIT: Heh, dopiero teraz zauważyłem edita Tymona Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 6 Listopada 2008 Udostępnij Opublikowano 6 Listopada 2008 "Unknown variable inventory or array index out of bounds", przetłumacz. Obawiam się, że nie rozumiesz co podstawić pod inventorySizeX i inventorySizeY. I zignoruj tego ostatniego posta z kodem, podałem go tylko jako przykład błędnej interpretacji kodu przez Harva. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 6 Listopada 2008 Autor Udostępnij Opublikowano 6 Listopada 2008 jednak ciągle tego nie rozumiem :confused: próbowałem ingerować w kod, ale nadal nie wiem o co chodzi... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 6 Listopada 2008 Udostępnij Opublikowano 6 Listopada 2008 Ogólnie pod inventorySizeX i inventorySizeY podstaw rozmiary inwentarza. =) 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ę