Skocz do zawartości

staty-2 problemy


Morti

Rekomendowane odpowiedzi

Siema. Mam nietypowy i dziwny problem. Otóż w create obiektu Hero mam takie coś:

 

GML
global.hp = 100;

global.maxhp = 100;

 

global.mp = 1;

global.maxmp = 1;

 

global.ak= 50;

global.maxak = 50;

 

 

A w obiekcie staty w Draw mam takie coś (w osobnych Execute Code:

GML
{

draw_rectangle(view_xview+10,view_yview+10,view_xview+(global.hp/global.maxhp*100),view_yview+20,false)

draw_set_color(c_red);

}

 

GML
{

draw_rectangle(view_xview+10,view_yview+30,view_xview+(global.mp/global.maxmp*100),view_yview+40,false)

draw_set_color(c_blue);

}

 

GML
{

draw_rectangle(view_xview+10,view_yview+50,view_xview+(global.ak/global.maxak*100),view_yview+60,false)

draw_set_color(c_orange);

}

I jest problem staty są w jakby innej kolejności co trzeba. (tak jak na tym screenie)

staty.png

 

I jeszcze mam drugie pytanie. Mam obiekt zwoj i w nim w create:

GML
aktywnosc=0

 

a w Left Pressem

GML
if (aktywnosc = 1)

{

aktywnosc = 0

}

else

aktywnosc=1

 

 

I mam obiekt sataty2 i w nim w Draw:

 

 

GML
if (zwoj.aktywnosc = 1)

 

{

 

draw_text(view_xview[0]+130,view_yview[0]+30,"atak: " +string(global.atak))

 

draw_set_color(c_white);

 

}

I tera jak klikam na zwoj to pojawia się tekst na pomarańczowo a pasek pomarańczowy zmienia się w biały :/

Pomażcie please.

Odnośnik do komentarza
Udostępnij na innych stronach

Dwa takie same błędy. Daj wszystkie draw_set_color przed draw_rectangle i na końcu draw daj draw_set_color(c_white);

W zwoju też przesuń draw_set_color przed draw_text

na końcu rysowania pasków draw_set_color(c_white);? w sumie to jest zbędne. i tak będzie ustawiał biały kolor przed rysowaniem tekstu. za to zawsze trzeba pamiętać o ustawieniu draw_set_alpha(1); po rysowaniu z przezroczystością (tak swoją drogą)

Odnośnik do komentarza
Udostępnij na innych stronach

THX już wszystko działa :)

mam jeszcze jedno pytanie. Jest obiekt plus i jak się na niego kliknie to:

GML
global.hp+=10

i co zrobić by np. jak mam 95hp to żeby po dodaniu nie było 105hp tylko 100hp (global.maxhp = 100;) ??

Odnośnik do komentarza
Udostępnij na innych stronach

THX już wszystko działa :)

mam jeszcze jedno pytanie. Jest obiekt plus i jak się na niego kliknie to:

GML
global.hp+=10

i co zrobić by np. jak mam 95hp to żeby po dodaniu nie było 105hp tylko 100hp (global.maxhp = 100;) ??

 

Bez żadnego stepa po prostu w evencie od klikania daj:

GML
global.hp = min( global.maxhp,global.hp + 10 );
Odnośnik do komentarza
Udostępnij na innych stronach

w sęsie, że

if global.hp >=100 { global.hp=100 }
global.hp+=10

 

Jak tak to i tak dodaje do 110hp

koleś, widzę, że ty po prostu nie ogarniasz tego, że kod wykonuje się od góry do dołu.

 

najpierw dodawaj hp, a później sprawdź, czy jest większe od maksymalnego hp, i wtedy ewentualnie ustaw na maxhp. poza tym, wcale nie trzeba sprawdzać, czy hp jest większe od maxhp w stepie, wystarczy sprawdzać tylko wtedy, gdy zmieniasz wartość hp.

GML
global.hp+=10;

if(global.hp>global.maxhp) global.hp=global.maxhp;

metoda HuderLorda też jest dobra

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ę...