Thobby Opublikowano 9 Listopada 2008 Udostępnij Opublikowano 9 Listopada 2008 Tak jak w tytule. Potrzebuję ustawić sprita obiektu na takiego, którego nazwa odpowiada kombinacji string(typ)+'1' jak wpisałem to właśnie tak, wyskakuje mi błąd 'Cannot compare arguments'. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 9 Listopada 2008 Administratorzy Udostępnij Opublikowano 9 Listopada 2008 ponieważ nazwy sprita to tak naprawdę liczby :) To znaczy, że zamiast sprite_dom wpisujesz 63 i to jest to samo. Jedyne wyjście jakie mi teraz przychodzi na myśl, to switch. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 9 Listopada 2008 Autor Udostępnij Opublikowano 9 Listopada 2008 coo?? :huh: tzn. wiem co to switch i do czego służy ale jakoś nie kapuję jak możnaby go tutaj użyć :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Saus Opublikowano 9 Listopada 2008 Udostępnij Opublikowano 9 Listopada 2008 Jesli zrobisz sprite_index = 0, to object bedzie mial sprite, ktory zostal jako 1 utworzony w grze. Jak robisz nowy sprite to masz nazwe, zalozmy sprite56. Jesli potem dasz w jakims objekcie sprite_index = 56, to on przyjmie ten sprite, nawet jak jego nazwe juz zmieniles :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 9 Listopada 2008 Udostępnij Opublikowano 9 Listopada 2008 spróbuj: GML sprite_index = execute_string( "return string( dupa ) + string( liczba )" ) E: a może po prostu przypisz sprity do tablic? "sprubój" T_T Yoda =P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 9 Listopada 2008 Udostępnij Opublikowano 9 Listopada 2008 Wpisz sobie GML show_message(string(nazwa_sprita));, a zobaczysz, że nazwa spita jest stałą przechowującą id sprita :) A co do tematu - to co Marek.S, ale (chyba... :P) bez "return". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 9 Listopada 2008 Udostępnij Opublikowano 9 Listopada 2008 a nie bo z return :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rewlisz Opublikowano 9 Listopada 2008 Udostępnij Opublikowano 9 Listopada 2008 GML nazwa = string(typ)+'1' switch( nazwa ) { case wartość1: sprite_index = obrazek//obrazek jaki ma mieć obi gdy nazwa = warunek1 break ... } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 9 Listopada 2008 Udostępnij Opublikowano 9 Listopada 2008 warunek1 wut? chyba raczej wartość. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rewlisz Opublikowano 9 Listopada 2008 Udostępnij Opublikowano 9 Listopada 2008 Sory, nie lubię switch i mi się składnia jego myli, bo jestem przyzwyczajony do if. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 10 Listopada 2008 Autor Udostępnij Opublikowano 10 Listopada 2008 ehhh... if sprite_index = execute_string(string(typ) + '1' ) i wyswietla sie błąd variable name expected z return też próbowalem i też nie działało. :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 10 Listopada 2008 Udostępnij Opublikowano 10 Listopada 2008 GML typ = "sprite"; typ += '0'; // albo typ += string( liczbaalbozmienna ) execute_string( " if sprite_index == "+typ+" { // akcja typ = string_letters( typ ); } "); Sprawdzi, czy sprite_index == sprite0 EDIT : Zmylił mnie twój poprzedni post z tym IF :P jeśli chcesz ustawić sprita to : GML typ = "sprite"; typ += string(liczba); execute_string( " sprite_index = "+typ+" typ = string_letters( typ ); "); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 10 Listopada 2008 Autor Udostępnij Opublikowano 10 Listopada 2008 tak ale ta liczba wcale nie jest zmienną, po prostu wpisuje ją w kodzie :P E: Chyba nie do końca mnie rozumiecie. Sprity w mojej grze mają mieć nazwy składające się z: typu postaci tj. fighter,knight,mage oraz paladin, oraz liczby. i teraz jak mam typ ustawiony na 'fighter' to chce żeby sprawdzało czy sprite_index=typ postaci + liczba którą tu wpisze czyli inaczej, czy sprite_index=fighter1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 10 Listopada 2008 Udostępnij Opublikowano 10 Listopada 2008 GML (create) sprite[0]=sprit typu postaci fighter sprite[1]=sprit typu postaci knight sprite[2]=sprit typu postaci mage sprite[3]=sprit typu postaci paladin GML (draw) draw_sprite(sprite[typ postaci],0,x,y)?? Zrob se to jak chcesz, bo nie rozumiem cie do konca. Ale cos tam mi chyba... GML (create) sprite[0,1]=sprit typu postaci fighter liczby1 sprite[1,1]=sprit typu postaci knight liczby1 sprite[1,2]=sprit typu postaci knight liczby2 ... sprite[2,1]=sprit typu postaci mage liczby1 ... sprite[3,1]=sprit typu postaci paladin liczby1 ... GML (draw) draw_sprite(sprite[typ postaci,liczba],0,x,y)?? PS: a i musi byc ze jak typ postaci to fighter to ta zmienna z typami postaci musi byc 0 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 10 Listopada 2008 Autor Udostępnij Opublikowano 10 Listopada 2008 o boooze... na prawde myślisz że w całej grze będzie tylko jeden sprite dla każdego typu?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 10 Listopada 2008 Udostępnij Opublikowano 10 Listopada 2008 GML (create) sprite[0,1]=sprit typu postaci fighter sprit pierwszy sprite[1,1]=sprit typu postaci knight sprit pierwszy sprite[1,2]=sprit typu postaci knight sprit drugi ... sprite[2,1]=sprit typu postaci mage liczby1 ... sprite[3,1]=sprit typu postaci paladin liczby1 ... GML (draw) draw_sprite(sprite[typ postaci,numer sprita],0,x,y) ?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 10 Listopada 2008 Udostępnij Opublikowano 10 Listopada 2008 czyli inaczej, czy sprite_index=fighter1 No i co złego w moim kodzie jest ? Tylko podmieniasz GML typ = "fighter"; typ += '1'; execute_string( " if sprite_index == "+typ+" { // akcja typ = string_letters( typ ); } "); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 10 Listopada 2008 Autor Udostępnij Opublikowano 10 Listopada 2008 tak, ale w momencie kiedy wpiszemy typ+= cośtam, to zmienia się zmienna typ, która nie może sie zmieniac, bo zamiast byc rycerzem, bedziemy rycerzem1, rycerzem2 i.t.d. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 10 Listopada 2008 Udostępnij Opublikowano 10 Listopada 2008 ale potem powraca do swojej pierwotnej wartosci w mgnieniu oka, po wykonaniu akcji. Sproboj ( jesli nie probowales wczesniej ). linijke typ = string_letters( typ ); mozesz dac nawet przed akcja, jesli sprawdzasz tam tą zmienną "typ" i musi byc bez cyferki. EDIT : A jeśli już, to możesz zrobić zmienną tymczasową var _t; _t = typ; i na niej operować, jesli zmienna "typ" nie może sie zmieniac. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 10 Listopada 2008 Autor Udostępnij Opublikowano 10 Listopada 2008 dobra kapuuje :P dzieki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 11 Listopada 2008 Autor Udostępnij Opublikowano 11 Listopada 2008 sory za double posta ale... mam taki oto skrypt: GML typ += '1'; execute_string(" if sprite_index == "+typ+" { typ=string_letters(typ); typ += '2'; sprite_index = "+typ+"; typ = string_letters( typ ); } else { typ+= '4'; sprite_index = "+typ+"; typ = string_letters( typ ); } typ=string_letters(typ); "); typ jest ustawiony na fighter i zawsze po wykonaniu tego skryptu ustawia sie sprite o nazwie fighter1 wie ktoś może dlaczego? analizowałem ten kod kilka razy i nic nie zauważyłem :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 12 Grudnia 2008 Administratorzy Udostępnij Opublikowano 12 Grudnia 2008 Załóżmy, że: GML typ = 'domek'; domek = "inna zmienna"; Ponieważ w polu execute kode podajesz +typ+ oznacza to, że taki ciąg: GML typ = 'domek'; execute_string(" show_message(typ); show_message("+typ+");"); Pokaże kolejno: domek inna_zmienna zauważ, że użycie + powoduje, że pomiędzy znaki " " zostaje wsawiona zawartość zmiennej typ, czyli 'domek', to znaczy że: show_message("+typ+"); to tak naprawdę show_message(domek); Tak samo string(typ) - to "domek", natomiast string("typ") - to "typ". W takim razie twój execute code wygląda tak: GML if sprite_index == 'domek' { typ=string_letters(typ); typ += '2'; sprite_index = 'domek'; typ = string_letters( typ ); } else { typ+= '4'; sprite_index = 'domek'; typ = string_letters( typ ); } typ=string_letters(typ); Wniosek: GML //zamień "+typ+" //na samo typ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 15 Grudnia 2008 Autor Udostępnij Opublikowano 15 Grudnia 2008 ? japierdziele wgl. tego nie kumam. przeróbcie mi ten skrypt, skopiuje go i wszyscy beda happy :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 Nie, nie wszyscy, tylko Ty. My (userzy) tu jestesmy zeby Cie nauczyc, pokazac metode, a to ze tego "nie kumasz" Nam nie zaprzata glowy - wniosek jeden: chcesz zrozumiec kod? to go analizuj a nie czekasz na gotowca. Taka moja mala uwaga. Gnysek Ci dokladnie wyjasnil co trzeba zrobic, przeanalizuj jego wypociny a zrozumiesz jakie jest rozwiazanie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Thobby Opublikowano 15 Grudnia 2008 Autor Udostępnij Opublikowano 15 Grudnia 2008 po 1. sorry , nie doczytałem posta Gnyska. po 2. zrobiłem tak jak kazał i przy if sprite_index == typ wyświetla mi cannot compare arguments ;/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 15 Grudnia 2008 Administratorzy Udostępnij Opublikowano 15 Grudnia 2008 A sprite_index == execute_script(typ) ?? Nie wiem, zagmatwałeś to :P Ja bym tablicę zrobił i tyle. 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ę