Skocz do zawartości

Paski życia i many


gothicner

Rekomendowane odpowiedzi

Witam! od jakiegoś czasu jestem w trakcie robienia gry przygodowej i chce zrobić pasek życia i many. I mam z tym dwa problemy: po pierwsze nie wiem jak zrobić dwa osobne paski, gdy robie object o nazwie DrawHealth oraz DrawMana to wtedy gdy ma mi odjąć życie odejmuje również manę. Po drugie wiem jak zrobić pasek życia podążający za kamerą, ale wtedy jest na współżędnych x.0 y.0 a ja chce je zrobić na x.84 y.25. Za pomoc z góry dziękuje.

Odnośnik do komentarza
Udostępnij na innych stronach

odejmóje

:ranting2:

Po co ci osobne obiekty? Zrób jeden, za to rysujący dwa prostokąty lub sprity[nie wiem jak rozwiązujesz problem(o ile spritem to walisz draw_sprite(s_healthbar,view_xview + 84,view_yview + 24,health * sprite_get_number(s_healthbar) / maxhealth) i to samo z maną)].

Odnośnik do komentarza
Udostępnij na innych stronach

1. zrób dwie zmienne jedna będzie odpowiadać za manę druga za życie i wtedy rysujesz dwa prostokąty jeden czerwony drugi niebieski i gdy odejmusjesz zmienne odejmuje zmieszasz pasek

2 zrób view_xview+84 view_yview+25 proste

 

oki problem nr. 2 rozwiązany(dzięki :thumbsup: ) ale ja nie wiem co to jest zmienna <_<

Odnośnik do komentarza
Udostępnij na innych stronach

Zmienna to np wyraz którego używasz wprowacając funkcje w swojej grze.

np.

global.mamklucz

to zmienna.

 

teraz jeśli nie posiadasz klucza to zmienna wynosi global.mamklucz = 0

 

jeśli posiadasz klucz, to zmienna wynosi 1

 

teraz możesz otworzyć drzwi bo masz klucz:

 

czyli

 

if global.mamklucz = 1 && keyboard_check(vk_enter)

{

//otwierasz drzwi

{

Odnośnik do komentarza
Udostępnij na innych stronach

Witam! od jakiegoś czasu jestem w trakcie robienia gry przygodowej i chce zrobić pasek życia i many. I mam z tym dwa problemy: po pierwsze nie wiem jak zrobić dwa osobne paski, gdy robie object o nazwie DrawHealth oraz DrawMana to wtedy gdy ma mi odjąć życie odejmuje również manę. Po drugie wiem jak zrobić pasek życia podążający za kamerą, ale wtedy jest na współżędnych x.0 y.0 a ja chce je zrobić na x.84 y.25. Za pomoc z góry dziękuje.

 

 

Teraz jak już sobie jakoś poradziłem i wszystko wyglądał opięknie, kompletnie się zchrzaniło <_< . Więc mam klocek draw health na następójących "danych"

x1: view_xview+76

y1: view_xview+23

x2:view_xview+143

y2:view_xview+28

back color: none

bar color: red

i NIE mam zaznaczone relative. ale jeśli się poruszę w prawo pasek rzycia wędruje w dół ekranu. Oco tu biega?

Odnośnik do komentarza
Udostępnij na innych stronach

musisz zrobić osobny obiekt, np o_draw_health ponieważ:

1. gdy rysujesz spritea i bar'a, bar ma przewage i nie rysuje spritea.

2. chodzisz instancją, czyli w tym przypadku chodzisz heatlh bar'em

 

;p

 

 

ale nie, ja stworzyłem object HealthDraw a poruszanie się jest w object Player a pomimo to pasek spada w dół

Odnośnik do komentarza
Udostępnij na innych stronach

A możesz podać jak teraz napisałeś? Bo ciężko znaleźć inne wytłumaczenie, od złego wpisania. Powinno działać :|

 

 

Już sobie poradziłem z paskiem, ale teraz mam kolejny problem również powiązany z życiem. Mianowicie: Mam object HealthBack w którego klocku jump to givet position w eventcie step jest ustawione:

x: view_xview;

y: view_yview;

i na jego spricie są dwa czarne paski, a na ich współżędnych mam pasek many i energii. ale gdy się poruszam to HealthBack tak się jakoś dziwnie zacina :boxed: ... zmienia pozycje o kilka "centymetrów" w prawo a za sekunde powraca na zwoje miejsce i trochę tandetnie to wygląda.

Odnośnik do komentarza
Udostępnij na innych stronach

pasek rysowany nad graczem. w draw;

GML
var xx, yy, szerokosc, wysokosc;

xx= object_gracz.x-50

yy= object_gracz.y-20

szerokosc=xx+ (zdrowie/zdrowie_max*100)

wysokosc= yy+ 8

 

draw_set_color(c_black)

draw_rectangle(xx,yy,xx+100,wysokosc,0)

draw_set_color(c_red)

draw_rectangle(xx,yy,szerokosc,wysokosc,0)

draw_set_color(c_black)

draw_rectangle(xx,yy,xx+100,wysokosc,1)

draw_set_color(c_white)

 

ED.

coś takiego. z pamięci ale chyba dobrze będzie

 

 

a z viewiem w lewym górnym rogu:

GML
var xx, yy, szerokosc, wysokosc;

xx= view_xview+10

yy=view_yview+10

szerokosc=xx+ (zdrowie/zdrowie_max*100)

wysokosc= yy+ 8

 

draw_set_color(c_black)

draw_rectangle(xx,yy,xx+100,wysokosc,0)

draw_set_color(c_red)

draw_rectangle(xx,yy,szerokosc,wysokosc,0)

draw_set_color(c_black)

draw_rectangle(xx,yy,xx+100,wysokosc,1)

draw_set_color(c_white)

Odnośnik do komentarza
Udostępnij na innych stronach

GML (Create)
HP = 100;

MP = 125;

 

HP_Max = 100;

MP_Max = 125;

GML (Draw)
// Różne są sposoby na rysowanie tzw. health barów

// HP:

draw_sprite( sprBarHP, 0, view_xview[0]+10, view_yview[0]+10 );

draw_sprite_part( sprBarHP, 1, /*Left*/0, /*Top*/0, /*Right*/(HP/HP_Max)*100, /*Bottom*/30, view_xview[0]+10, view_yview[0]+10 );

// MP:

draw_sprite( sprBarMP, 0, view_xview[0]+10, view_yview[0]+45 );

draw_sprite_part( sprBarMP, 1, /*Left*/0, /*Top*/0, /*Right*/(MP/MP_Max)*100, /*Bottom*/30, view_xview[0]+10, view_yview[0]+45 );

// Aby ten sposób zadziałał, stwórz dwa spritesy z dwiema klatkami 1:tył paska, 2:"główny" pasek</span>

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