LolikZabijaka Opublikowano 13 Czerwca 2018 Udostępnij Opublikowano 13 Czerwca 2018 Joł! Problem wygląda tak, skorzystałem z pola tekstowego RPG od Gnyska, wszystko elegancko, ale kiedy wyświetla mi się tekst, po przewinięciu i zamknięciu go, znika mi z ekranu także HUD. Pytanie brzmi: Dlaczego ? Dam tu kody z obiektów odpowiedzialnych za to : DRAW PANELU <code> with o_gracz{ draw_set_font( font0 ) ; draw_set_color( c_white ) ; draw_set_halign( fa_center ) xx = view_xview[ 0 ] + view_wport[ 0 ] - 107 // pozycja panelu yy = view_yview[ 0 ] + view_yport[ 0 ] +1 if ( bron != luj ) //jezeli aktualna bron != nic { draw_text( xx - 15 , yy + 45 , weapon_name[ bron ] ) // rysuje napis z nazwą broni draw_text( xx + 15 , yy + 65 , string( ammo_wmagazynku[ bron ] ) + '/' + string( ammo_zapasowe[ bron ] )) // rysuje ilość ammo } if bron= luj { draw_text( xx - 15 , yy + 45 , weapon_name[ bron ] ) // rysuje napis z nazwą broni } draw_healthbar(view_xview+32,view_yview+16,view_xview+150,view_yview+20,stamina,c_white,c_red,c_teal,0,1,1); draw_healthbar(view_xview+32,view_yview+23,view_xview+150,view_yview+30,zdrowie,c_white,c_red,make_color_rgb(0,90,0),0,1,1); if armor>0{ draw_healthbar(view_xview+32,view_yview+32,view_xview+150,view_yview+36,armor,c_white,c_gray,c_gray,0,1,1); } if misja0=0{ draw_set_font(f_misje) make_color_rgb(221,221,221);draw_set_halign( fa_left ) ;draw_text( view_xview[ 0 ] + 32 , view_yview[ 0 ] + 50 , 'Znajdź broń!' ) } if misja0=1{ draw_set_font(f_misje) make_color_rgb(221,221,221) ;draw_set_halign( fa_left );draw_text( view_xview[ 0 ] + 32 , view_yview[ 0 ] + 50 , 'Dostań się do rezydencji!' ) } if misja0=2{ draw_set_font(f_misje) make_color_rgb(221,221,221) ;draw_set_halign( fa_left );draw_text( view_xview[ 0 ] + 32 , view_yview[ 0 ] + 50 , 'Zabij Schumanna, oraz odbierz plany "Transferu Wschodnio-Niemieckiego"!' ) } if misja0=3{ draw_set_font(f_misje) make_color_rgb(221,221,221) ;draw_set_halign( fa_left );draw_text( view_xview[ 0 ] + 32 , view_yview[ 0 ] + 50 , 'Wezwij pomoc przez radiostację!' ) } if misja0=4{ draw_set_font(f_misje) make_color_rgb(221,221,221) ;draw_set_halign( fa_left );draw_text( view_xview[ 0 ] + 32 , view_yview[ 0 ] + 50 , 'Bierz dupę w troki Ty przebrzydły kurwiarzu!' ) } } with o_boh_trup { draw_set_font(f_misje) make_color_rgb(221,221,221) ;draw_set_halign( fa_left );draw_text( view_xview[ 0 ] + 32 , view_yview[ 0 ] + 50 , 'Nie żyjesz...' ) } </code> Create o_text: <code> alpha=0; //przeswitywalnosc step=0; //kolejne zadanie przez nas wykonywane - KROK text=''; //tekst jaki mamy wyswietlic leght = 0;</code> STEP: <code> if not ds_queue_empty(global.textq) and global.text_get=true //jezeli [kolejka] nie jest pusta i mozna [pobrac tekst] { global.text_get=false;//wylacz pobieranie tekstu, aby funkcja sie juz nie wywolala, dopuki znowu nie bedzie true text=ds_queue_dequeue(global.textq);//pobierz tekst z kolejki step=1;//ustaw zadanie na jeden leght=0; } //KROK 1 if step=1 { //zmniejszamy przeswitywalnosc az do max. widocznosci (1) if alpha<1 then alpha+=0.2 else { //przeswitywalnosci juz nie ma, zatem skoncz wykonywanie tego skryptu alpha=1; step=2; } } //KROK 2 if step=2 { if leght<string_length(string(text)) then leght += 5; // Mozesz zmienic predkosc "drukowania" testu dodajac inna liczbe do zmiennej leght } //KROK 3 if step=3 { //teraz zwiekszaj przeswitywalnosc az do znikniecia (0) if alpha>0 then alpha-=0.2 else { //przeswituje juz tak ze bardziej nie moze alpha=0; text=''; global.text_get=true;//ustaw, ze mozna juz pobierac tekst step=0; } } </code> DRAW: <code> vx=view_xview[0]; vy=view_yview[0]; // ^^ dodatkowe zabezpieczenie gdybysmy wlaczyli viewy, jak nie ma wloczonych //i tak dziala jak nalezy //teraz malujemy tlo tekstu draw_set_alpha(alpha/2); draw_set_color(c_yellow); draw_rectangle(vx+20,vy+600,vx+1260,vy+700,false); //teraz malujemy obwodke draw_set_alpha(alpha); draw_set_color(c_black); draw_rectangle(vx+20,vy+600,vx+1260,vy+700,true); //a teraz tekst, za pomoca draw_text_ext, zeby nie wyjechal poza prawa strone draw_set_color(c_black); draw_set_font(font_text); draw_set_halign(fa_left); draw_set_valign(fa_top); draw_text_ext(vx+22,vy+720-20-100-2,string_copy(string(text),1,round(leght)),-1,596); </code> Press Space: <code> if leght!=string_length(string(text)) { leght=string_length(string(text)); exit; } if step=2 then step=3;/*jezeli KROK jest rowny 2 (czyli wsyzstko zostalo rozjasnione) to przejdz do KROKU 3 - zwiekszaj przezroczystosc*/ </code> Co się ze sobą gryzie, gdzie może być babol? Pozdrawiam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 13 Czerwca 2018 Udostępnij Opublikowano 13 Czerwca 2018 Daj na samym końcu eventu Draw: draw_set_alpha(1) gnysek 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 14 Czerwca 2018 Administratorzy Udostępnij Opublikowano 14 Czerwca 2018 Dokładnie, w nowych wersjach GMS, draw_set_alpha() wpływa też na draw_sprite, więc może znikać dużo rzeczy. Ogólnie, draw_sprite korzysta z draw_get_alpha() zamiast z image_alpha. Z tego drugiego korzysta draw_self(). 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ę