Paqoo Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 Tak wygląda kod błędu: ERROR in action number 1 of Draw Event for object o_swiatynia: In script draw_ob_hp: Error in code at line 12: pasek = ( czas / czas_max ) * dlugosc; at position 19: Division by 0. W create obiektu mam: imie='Świątynia' hlt=100 max_hlt=100 A draw to: draw_set_font(font1) draw_set_color(c_white) draw_sprite_ext(sprite_index,image_index,x,y,1,1,image_angle,noone,1);//rysowanie grafiki draw_text(x-(sprite_width/2)+10,y-40,imie); draw_ob_hp(x-(sprite_width/2)+15,y-20,x+sprite_width,y-15,hlt,max_hlt);//rysowanie paska hp Skrypt rysowania paska to: var pasek, czas, czas_max, dlugosc, xx, yy, xx1, yy1, kolor, kolor1; xx = argument0; yy = argument1; xx1 = argument2; yy1 = argument3; czas = argument4; czas_max = argument5; dlugosc = xx - xx1; pasek = ( czas / czas_max ) * dlugosc; kolor1 = draw_get_color(); draw_set_color(c_white); draw_rectangle(xx,yy,xx1,yy1,false); draw_set_color(kolor1); kolor = merge_color(c_red,c_lime,czas/czas_max); draw_rectangle_color(xx,yy,xx-pasek,yy1,kolor,kolor,kolor,kolor,false); depth=-30 Ktoś wie o co chodzi? Kiedyś chyba coś takiego miałem. Próbowałem z with(self) ale nie działa. Nie mogę wpisać przecież tych zmiennych z create w draw! (wtedy działa, ale nie da się ich zmieniać) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 In script draw_ob_hp: Error in code at line 12: pasek = ( czas / czas_max ) * dlugosc; at position 19: Division by 0. Jak sam widzisz zmienna czas_max jest równa 0, a nie może być jeśli chcesz przez nią dzielić :P GML if(czas_max!=0) pasek = ( czas / czas_max ) * dlugosc; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 1 Lutego 2009 Autor Udostępnij Opublikowano 1 Lutego 2009 W ten sposób nie pokaże mi paska w ogóle. Problem jest wtedy jak zmienne nie są globalne. Dlaczego? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 Problem lezy w tym: czas_max = argument5 Teraz do Ciebie nalezy, aby argument5, jaki podajesz przy wywolaniu funkcji, byl rozny od 0 inaczej nic nie poradzisz na to ze masz blad. matematyki nie oszukasz, dopoki chcesz dzielic przez 0, to bedziesz mial blad Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 1 Lutego 2009 Autor Udostępnij Opublikowano 1 Lutego 2009 Jak ja ustawiam hlt na 100 w create, w czym problem? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 zrob reset GMa, jak nie podziala to reset kompa. Zabawne ale GM ma swoje humorki i rozne bledy pluje w najmniej oczekiwanym momencie i reset kompa mi zawsze pomagal :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XivroX Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 Z matematyki dobrze wiadomo, że przez 0 nie można dzielić, a czasami, jeżeli czas_max jest równe 0 to tak się sypie =/ Samo "division by 0" oznacza "dzielenie przez 0", więc nie wiem w czym problem. Wystarczy tylko analizować i nie dopuścić, by czas_max było równe 0 EDIT: Qrde... 3 postów mi nie pokazało... =/ - myślałem, że nikt nie odpowiedział Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Lutego 2009 Administratorzy Udostępnij Opublikowano 1 Lutego 2009 masz: GML pasek = ( czas / max(0.01,czas_max) ) * dlugosc; nie podzieli sie przez 0 nigdy xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 1 Lutego 2009 Autor Udostępnij Opublikowano 1 Lutego 2009 Jak mi teraz wyskakuje dzielenie przez zero przy kolorze! Co to za kawał śmierdzącego kloca? Kolor nie jest przecież nawet liczbą. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 kolor to tez liczba, dla sprawdzenia: show_message(string(c_green)) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 1 Lutego 2009 Autor Udostępnij Opublikowano 1 Lutego 2009 GM coś świruje. Dlaczego jak mam zmienne globalne to działa normalnie? Ale nie mogę ich mieć w ten sposób, bo wybuduję parę budynków i będzie się psuło. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 Wyluzuj. Naprawdę reset może czynić cuda, wyobraź sobie moją minę gdy gm dawał: show_message("lol") at position 5: Unexpected symbol. Do resetu wogóle nie rozpoznawał znaku "_" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 1 Lutego 2009 Autor Udostępnij Opublikowano 1 Lutego 2009 Zrobiłem już reset i nie pomaga. Kombinuję już od godziny. Zaczynam wpadać w szał... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 Napisz treść błędu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 1 Lutego 2009 Autor Udostępnij Opublikowano 1 Lutego 2009 In script draw_ob_hp: Error in code at line 12: pasek = ( czas / czas_max ) * dlugosc; at position 19: Division by 0. Napisałem już to. Cały czas ma problem z dzieleniem. Wystarczy, że zmienię zmienne na globalne i nie ma już problemu z dzieleniem. Hahahaha! Jak mam napisać żeby nie trzeba było globalnych używać? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matthew Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 Pokaż kod wywoływania funkcji. Tj. ten skrypt rysowania paska: rysuj_pasek(arg0,arg1...) Metodą łańcuchową sprawdź co jest nie tak. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 1 Lutego 2009 Autor Udostępnij Opublikowano 1 Lutego 2009 draw_ob_hp(x-(sprite_width/2)+15,y-20,x+sprite_width,y-15,hlt,max_hlt);//rysowanie paska hp Przecież podałem... Metodą łańcuchową sprawdź co jest nie tak. Pierwszy raz słyszę to sformułowanie. Jakbym to znał to bym nie pytał nikogo. Więc po co piszesz w ten sposób? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 1 Lutego 2009 Udostępnij Opublikowano 1 Lutego 2009 odpal gre w debug mode i kliknij na plusik, dopisz se tam zmienną np object1.max_hlt i obserwuj jaką ma wartość. A jak nie pomoże, możesz mi w zaufaniu przesłać projekt, obejrzę i wtedy napewno dojde co nie tak. Już tak pomagałem, bać się nie musisz :). Zawsze możesz jeszcze zastosować radę gynska, którą chyba przeoczyłeś. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 2 Lutego 2009 Autor Udostępnij Opublikowano 2 Lutego 2009 Radę gnyska stosowałem. I przeszło do wiersza z kolorem i tam był problem z dzielniem :S Chyba rzucę Ci ten projekt żebyś naprawił błąd. Jak coś pisz na gg, pocztę albo PW :D Ja zaraz wyślę Ci linka. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 2 Lutego 2009 Administratorzy Udostępnij Opublikowano 2 Lutego 2009 no tak, bo w tym co ja przytoczyłem nigdy nie było dzielenia przez 0, więc nigdy nie było błędu. ew. zrób tak: GML if czas_max>0 { pasek = ( czas / czas_max ) * dlugosc; } else { pasek = 0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 2 Lutego 2009 Autor Udostępnij Opublikowano 2 Lutego 2009 A co powiesz na to? :P ERROR in action number 1 of Draw Event for object o_swiatynia: In script draw_ob_hp: Error in code at line 23: kolor = merge_color(c_red,c_lime,czas/czas_max); at position 40: Division by 0. Zastosowałem to do kolor i teraz pokazuje biały pasek z zerem zamiast nazwy :D Chyba nie o to mi chodziło. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 2 Lutego 2009 Udostępnij Opublikowano 2 Lutego 2009 widzę, że korzystasz z mojego przykładu ;p oczywiście, że jest zabugowany... po prostu nie zmieniaj czas_max! to czas ma być zmieniany!... i sprawdź w kodzie czy gdzieś przypadkiem nie ustawiasz czas_max = 0 ... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 2 Lutego 2009 Administratorzy Udostępnij Opublikowano 2 Lutego 2009 GML if czas_max > 0 { kolor = merge_color(c_red,c_lime,czas/czas_max); } else { kolor = merge_color(c_red,c_lime,0); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 2 Lutego 2009 Autor Udostępnij Opublikowano 2 Lutego 2009 Pieter to dlaczego jak mam global.hlt nie wyświetla błędu o dzielniu przez 0? Ustawie hlt w create tego obiektu z paskiem i już nagle nie może dzielić przez 0! Paranoja. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Lutego 2009 Udostępnij Opublikowano 2 Lutego 2009 To nie rób na przykładach, napisz coś sam to może będzie działać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 2 Lutego 2009 Autor Udostępnij Opublikowano 2 Lutego 2009 Jakbym się nudził tak jak ty, to na pewno bym tak robił. Tak w ogóle to czasami mam ochotę urwać komuś język jak widzę takiego Tymona, któremu się nie chce pomóc ale zawsze doradzi tak jak nie trzeba :) Jakbym miał ochotę to bym sam to pisał. Widocznie sprawia mi to ból dlatego wole czasami skorzystać z czyjejś pracy. To chyba nie zbrodnia? Po prostu oszczędzam czas. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Lutego 2009 Udostępnij Opublikowano 2 Lutego 2009 Jakbyś nie był taki głupi to byś na pewno tak zrobił. ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 2 Lutego 2009 Autor Udostępnij Opublikowano 2 Lutego 2009 Jak masz zły dzień to nie spamuj. Ciągle liczę na czyjąś pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Lutego 2009 Udostępnij Opublikowano 2 Lutego 2009 Wszyscy podali Ci rozwiązanie problemu: nie dziel przez zero. :) To chyba nie zbrodnia? Po prostu oszczędzam czas.O ile autor na to pozwala to nie. Jakbym miał ochotę to bym sam to pisał.Wiesz, pisanie takich rzeczy jest tak trywialnie proste... więc albo nie wiesz jak, albo... sam nie wiem co. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 2 Lutego 2009 Autor Udostępnij Opublikowano 2 Lutego 2009 To wiedziałem bez niczyjej pomocy. Przecież w Error widocznie jest to napisane. Nawet moja siostra by na to wpadł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ę