Skocz do zawartości

Tymczasowy pasek energii pojawiający się w HUD


Cygnus

Rekomendowane odpowiedzi

Cześć wszystkim.

 

Mam taki problem,ustawiłem sobie pasek energii nad wrogami ,ale chciałbym,żeby dany pasek energii wroga znalazł się w odpowiednim miejscu w HUD,czyli jak podejdę do wroga,to dopiero wtedy pasek wroga pojawi się w HUD,a jak odejdę od wroga to zniknie..itd za każdym razem obojętnie do którego wroga podejdę.Próbuje i mi nie wychodzi czy w klockach idzie możliwość ustawienia dystansu? bo tak to jak się ustawi pasek w tym miejscu jak na rysunku HUD to wszystkie paski wszystkich wrogów na danej planszy się tam gromadzą:/a nie o taki efekt chodzi.

 

Tu na rysunku to rozrysowałem...

 

a tu w obj_wrog

 

w Create dałem na te hp takie klocki

 

GMLVAR - set variable maxHP to 5

VAR - set variable hp to 5

VAR - set variable hp_percent to (hp/maxHp)*100

 

 

 

w STEP

 

GMLVAR - set variable hp_percent to (hp/maxHp)*100

 

 

no i Draw

 

GMLset the color niebieski

draw rectangle - x1-25, y1-40, x2-25+(hp_percent/2) ,y2-50,filled-filled

 

zaznaczone relative

 

set the color-czerwony

 

draw rectangle - x1-25, y1-40, x2 25 ,y2 50,filled -outline

 

i zaznaczone relative

 

a tu kod obj_game_controller ,gdzie znajduje się w nim HUD

 

DRAW GUI

 

GML///Draw player HUD

draw_sprite(spr_UI_topleft,1,0,0);

draw_set_color(c_white);

var __guiW = display_get_gui_width(), __guiH = display_get_gui_height();

 

draw_sprite(spr_healthbar,0,0,0);

 

draw_text(32, 44, string(" Lives: " + string(global.life)));

draw_text(36, 88, string(" Coins: " + string(global.coins)));

draw_text(36, 110,string(" Watch: " + string(global.watch)));

 

 

 

 

//punkty

draw_set_color(c_white);

draw_set_valign(fa_middle);

draw_set_halign(fa_center);

draw_set_font(fn_punkty);

draw_text(470,39,"$"+string(global.pScore));

 

 

 

 

if instance_exists(par_player) {

hpHUD = lerp(hpHUD,par_player.hp,.5);

maxHpHUD = par_player.maxHp;

 

with obj_player {

var _offset;

_offset = 0;

 

draw_set_font(fnt_pwrup);

draw_set_valign(fa_bottom);

draw_set_halign(fa_center);

draw_set_color(c_white);

draw_texture_flush();

 

if pwrupSpd > 0 {

draw_sprite_ext(spr_pwrup_speed,0,__guiW-26,29+35*_offset,1,1,0,c_gray,.5);

draw_text(__guiW-26,29+35*_offset,string(ceil(pwrupSpd/room_speed)));

_offset++;

}

if pwrupStr > 0 {

draw_sprite_ext(spr_pwrup_strength,0,__guiW-26,35+35*_offset,1,1,0,c_gray,.5);

draw_text(__guiW-26,35+35*_offset,string(ceil(pwrupStr/room_speed)));

_offset++;

}

if pwrupJmp > 0 {

draw_sprite_ext(spr_pwrup_jump,0,__guiW-26,28+35*_offset,1,1,0,c_gray,.5);

draw_text(__guiW-26,28+35*_offset,string(ceil(pwrupJmp/room_speed)));

_offset++;

}

}

} else {

hpHUD = lerp(hpHUD,0,.5);

}

 

draw_sprite_part(spr_healthbar,1,94,0,91/maxHpHUD*hpHUD,32,4,0);

 

Tu rysunek jak to ma wyglądać..

 

pasek.png

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...