Ignatus Opublikowano 14 Marca 2017 Udostępnij Opublikowano 14 Marca 2017 W create mam GML p=obj_Player w draw mam GML draw_text_transformed(x,y-200,p,4,4,0) I wyświetla mi bez problemu na bieżaco id (poczatkowo to jest obj_Player ale potem sie zmienia) Ale jak zrobie GML draw_line_colour(x,y,p.x,p.y,c_red,c_red) To dostaje błąd Variable <unknown_object>.y(1, -2147483648) not set before reading it. at gml_Object_obj_Enemy_parent_DrawEvent_1 (line 9) - draw_line_colour(x,y,p.x,p.y,c_red,c_red) Co się dzieje?Zmienna ustalona na 10000% Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dester Opublikowano 14 Marca 2017 Udostępnij Opublikowano 14 Marca 2017 Z tego co wiem to nie można po prostu ustawić zmienną na obiekt, bo może istnieć wiele instancji jednego obiektu. GML p = instance_create(x,y, obj_Player)//tworzy instancję i odwołuje się do niej Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 14 Marca 2017 Udostępnij Opublikowano 14 Marca 2017 To dlaczego w każdym innym miejscu mogę to zrobić tylko nie przy draw_line ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dester Opublikowano 14 Marca 2017 Udostępnij Opublikowano 14 Marca 2017 Nie jestem pewien. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 14 Marca 2017 Udostępnij Opublikowano 14 Marca 2017 not set before reading it. Znaczy że nie ma tego obiektu w roomie/jest nie aktywna. Tzn kiedy przypisujsz zmienna p nie ma instancji tego obiektu w roome Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 15 Marca 2017 Udostępnij Opublikowano 15 Marca 2017 Chłopaki ja rozumiem ten błąd,przerabiałem setki razy coś takiego,przeczytajcie jeszcze raz jaki mam problem. Ta zmienna działa w każdym przypadku poza draw_line.Wtedy nagle "nie istnieje" - ale jezeli uzyje jej w jakikolwiek inny sposób i dokładnie w tym samym miejscu kodu-wtedy wszystko jest ok.Co jest nie tak? Jeżeli to nie bug to bardzo jestem ciekaw jakie jest wytłumaczenie bo obiekt istnieje ,zmienna jest przypisana, mogę np sobie zrobić GML with p {effect_create_above(ef_spark,x,y,5,c_red)} i bedzie działało.Ale draw_line od razu błąd- i co ciekawe czepia się tylko Y .... "Variable <unknown_object>.y(1, -2147483648) not set before reading it." Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Phoenix Opublikowano 26 Marca 2017 Udostępnij Opublikowano 26 Marca 2017 w konsoli, jak chcę odpalić grę, to po tych logach: Room_Prepare() Sound_Prepare() InitGraphics() Finished PrepareGame() Run_Start StartGame() nic się nie dzieje... nie jestem pewien czym to jest spowodowane. Ktoś ja jakieś rozwiązanie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 26 Marca 2017 Udostępnij Opublikowano 26 Marca 2017 Chłopaki ja rozumiem ten błąd,przerabiałem setki razy coś takiego,przeczytajcie jeszcze raz jaki mam problem. Ta zmienna działa w każdym przypadku poza draw_line.Wtedy nagle "nie istnieje" - ale jezeli uzyje jej w jakikolwiek inny sposób i dokładnie w tym samym miejscu kodu-wtedy wszystko jest ok.Co jest nie tak? Jeżeli to nie bug to bardzo jestem ciekaw jakie jest wytłumaczenie bo obiekt istnieje ,zmienna jest przypisana, mogę np sobie zrobić GML with p {effect_create_above(ef_spark,x,y,5,c_red)} i bedzie działało.Ale draw_line od razu błąd- i co ciekawe czepia się tylko Y .... "Variable <unknown_object>.y(1, -2147483648) not set before reading it." Eventy draw są troszkę niezależne od innych eventów. Tak, twoja zmienna jest ustawiona ale na coś co nie ma własnego y. Warto się zawsze zabezpieczać sprawdzając czy obiekt/instance istnieje. A to wygląda jakbyś przypisał p=obj_Player stworzył drugi obj_Player i usunął pierwszy. Albo tak jakbyś dezaktywował ten obiekt. Powodów może być wiele a na pewno jednym z nich jest bałagan w kodzie. w konsoli, jak chcę odpalić grę, to po tych logach: Room_Prepare() Sound_Prepare() InitGraphics() Finished PrepareGame() Run_Start StartGame() nic się nie dzieje... nie jestem pewien czym to jest spowodowane. Ktoś ja jakieś rozwiązanie? Masz nieskończoną pętlę gdzieś w create. Gra utknęła na evencie create i nie doszła jeszcze do draw aby coś pokazać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Phoenix Opublikowano 26 Marca 2017 Udostępnij Opublikowano 26 Marca 2017 dzięki wielkie za pomoc, juz znalazłem problem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 create GML hp=10 hpmax=hp //maksymalne hp do healthbaru linelength= hp / hpmax *100 a=linelength step GML linelength= hp / hpmax*100 if (a!=linelenght){ b=a-linelenght c-=a } błąd: GML Variable obj_test_dummy.linelenght(100139, -2147483648) not set before reading it. at gml_Object_obj_Enemy_parent_StepNormalEvent_1 (line 42) - if (a=linelenght){ Może jak naprawdę jestem tępy ale niech ktoś mi wytłumaczy : jak może być błąd nie nadania wartości zmiennej skoro dosłownie linijkę wyżej jest ona określona(do tego jest już wczesniej okreslona w create) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Nie widzę żeby błąd który ci się wyświetla GML if (a=linelenght){ był w kodzie który podajesz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Zmień nazwę zmiennej, mało widoczne, ale na końcu jest źle zapisana :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Threef : nie wiem jak to możliwe bo kopiowałem a nie przepisywałem , magia Kaktus:masz rację Finalnie i tak działający kod jest bezużyteczny;p Stąd mam kolejne,bardziej skomplikowane pytania 1.Ktoś ma pomysł jak zrobić żeby draw_healthbar był zależny w przestrzeni od rotacji gracza?? Mam kamerę która obraca się razem z obrotem gracza w top down, ustawiony "na sztywno" pasek staje w miejscu , a ma być "za plecami".Jak ustawie go względem punktów które poruszają się razem z graczem w przestrzeni to się mutuje jak opętany (zmienia ksztalty) 2.Mam gotowy skrypt na okragly healthbar, swietna sprawa-jakby ktos potrzebowal to prosze GML ///draw_healthbar_circular(center x, center y, radius, start angle, percent health, sprite) var cx,cy,rad,sang,hp,tex,steps,thick,oc; cx=argument0 cy=argument1 rad=argument2 sang=argument3 hp=argument4 tex=sprite_get_texture(argument5,0) steps=200 thick=sprite_get_height(argument5) if ceil(steps*(hp/100)) >= 1 { oc=draw_get_color() draw_set_color(c_red) var step,ang,side,hps,hpd; step=0 ang=sang side=0 draw_primitive_begin_texture(pr_trianglestrip,tex) draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) side=!side draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) side=!side draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang+360/steps),cy+lengthdir_y(rad-thick/2+thick*side,ang+360/steps),side,side) side=!side hps=hp/(ceil(steps*(hp/100))+1) hpd=0 repeat ceil(steps*(hp/100)+1) { step+=1 if step=ceil(steps*(hp/100)+1) { //final step ang+=(360/steps)*(hp - hpd)/2 if ang>sang+360 ang=sang+360 draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) side=!side draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) } else { ang+=360/steps draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) side=!side } hpd+=hps } draw_primitive_end() draw_set_color(oc) } Ale jest jeden problem- healthbar maleje od lewej do prawej- a chiałbym odwrotnie- jak to osiągnąć w tym kodzie?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Strzelam, zupełnie na ślepo więc backup sobie zrób, że zamiana cx+lengthdir_x na cx-lengthdir_x powinna załatwić sprawę tego w którą stronę pasek się obraca. Co do błędu, warto się nauczyć czytać błędy. Kod błędu Variable obj_test_dummy.linelenght(100139, -2147483648) not set before reading it. at gml_Object_obj_Enemy_parent_StepNormalEvent_1 (line 42) - if (a=linelenght){ Mówi, że: 1. Błąd jest w obj_Enemy_parent 2. W Stepie 3. W Klocku #1 4. W lini 42 5. Typ błędu to "Zmienna nie ustawiona przed odczytem" czyli "Zmienna nie istnieje". Rozwiązaniem jest sprawdzić czy zmienne a oraz linelenght istnieją oraz nie mają literówek, jak wcześniej podał threef. Zakładam że literówka, ponieważ pisze się length nie lenght. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Spoko, nie mam problemu z czytaniem błędu, rzeczywiscie byla literówka- tak jak juz napisalem.Zostaly mi problemy z poprzedniego posta I dodatkowo : jak zrobic zeby health_bar u każdego wroga mial zawsze taka sama dlugosc na rysunku niezaleznie od watosci, tylko zeby roznilo sie tempo zmniejszania? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 długość = max długość * (hp/max hp) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 ^ Rzeczywiscie działa w przypadku domyslnego healthbara - ale dlaczego przy kodzie ktory podalem na circle bar się nie sprawdza i pokazuje różne długości? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Jak ten circle bar wyglada? To nie pojedyncze kolo ktorego 360 stopni to 100% HP? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 GML GML ///draw_healthbar_circular(center x, center y, radius, start angle, percent health, sprite) var cx,cy,rad,sang,hp,tex,steps,thick,oc; cx=argument0 cy=argument1 rad=argument2 sang=argument3 hp=argument4 tex=sprite_get_texture(argument5,0) steps=200 thick=sprite_get_height(argument5) if ceil(steps*(hp/100)) >= 1 { oc=draw_get_color() draw_set_color(c_red) var step,ang,side,hps,hpd; step=0 ang=sang side=0 draw_primitive_begin_texture(pr_trianglestrip,tex) draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) side=!side draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) side=!side draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang+360/steps),cy+lengthdir_y(rad-thick/2+thick*side,ang+360/steps),side,side) side=!side hps=hp/(ceil(steps*(hp/100))+1) hpd=0 repeat ceil(steps*(hp/100)+1) { step+=1 if step=ceil(steps*(hp/100)+1) { //final step ang+=(360/steps)*(hp - hpd)/2 if ang>sang+360 ang=sang+360 draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) side=!side draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) } else { ang+=360/steps draw_vertex_texture(cx+lengthdir_x(rad-thick/2+thick*side,ang),cy+lengthdir_y(rad-thick/2+thick*side,ang),side,side) side=!side } hpd+=hps } draw_primitive_end() draw_set_color(oc) } Tak wyglada jego kod Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Z tego co widze w argumencie percent health powinieneś dać 100*hp/maxhp żeby działało. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Niestety,od początku tak właśnie mam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Może pokaż jak wygląda GRAFICZNIE problem? Bo już chyba nie rozumiem o co biega. Powinno być jedno koło które zmniejsza się procentowo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Problemy: 1.Najważniejszy- każdy bar jest inny a chce żeby niezależnie od wartości były równe tylko w różnym tempie malały 2.Potrzebny mi w rozmiarze jakiś 70stopni - tak zeby był cały tylko łuk za plecami- ale to jest łatwe jeżeli będzie punkt 1 zrealizowany 3.Powinno maleć od prawej do lewej a jest odwrotnie i nie wiem co za to odpowiada w tym kodzie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 1. Na pewno postaci 2, 3 i 4 maja maxhp ustawione na 4,8,2 ? 2. zamiast 100*hp/maxhp zrób 70*hp/maxhp i zmień kąt startowy na direction + 35(albo -35, mówię z głowy) 3. A testowales to co mowilem pare postow wyzej aby odwrocic lengthdir? Edit Przetestowałem i jak zamienisz +lengthdir_x na -lengthdir_x w liniach: 22.24.26.36.38.42 to działa na odwrót tak jakbyś chciał. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 Właśnie przed chwilą też testowałem i rzeczywiście działa idealnie , dzięki :) Problem tylko z wizualizacją długości bo tutaj nie widzę postępu :/ Na screenie takie wartości HPmax są jak napisane- włącznie z tym ze nr.1 ma kółko 4x zapętlone... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 20 Kwietnia 2017 Udostępnij Opublikowano 20 Kwietnia 2017 U mnie działa™ Więc musiałeś coś źle podać w argumentach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 21 Kwietnia 2017 Udostępnij Opublikowano 21 Kwietnia 2017 create GML hp=10 hpmax=hp linelength=0 step GML linelength=70* (hp / hpmax) draw GML scr_draw_healthbar(x,y,300,direction + 35,linelength,spr_enemy_health) draw_text_transformed(x+300,y,"hp="+string(hp),4,4,image_angle) Zmieniam "hp" w creation code poszczegolnych obiektow Co jest nie tak??Teraz dodatkowo jakies poprzeczne paski sie pojawily u tego z 40.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 21 Kwietnia 2017 Udostępnij Opublikowano 21 Kwietnia 2017 Skończyly mi się pomysły... Może masz jakiś kod który zmienia hp i/lub maxhp? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 21 Kwietnia 2017 Udostępnij Opublikowano 21 Kwietnia 2017 Mógłbyś mi wysłać Twój projekt z działającym kodem? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 21 Kwietnia 2017 Udostępnij Opublikowano 21 Kwietnia 2017 Wybacz, miałem zajęty dzień, już podsylam: https://led.feen.us/scvhnu.rar 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ę