Skocz do zawartości

Poruszanie obrazu


kuba2153

Rekomendowane odpowiedzi

Mam problem, jestem kompletnym żółtodziobem w GM-ie i nie wiem jak zrobić, aby razem z przesuwaniem się kamery z bohaterem także przesuwała się liczba jego hp i mp. Ponieważ kiedy ide kamera się przesuwa a napis "hp: 100" i "mp: 100" zostaje tam gdzie był. Mógłby mi ktoś podać kod na to aby "szły" z kamerą?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli masz HUD na którym wyświetla się ilość HP i MP to po prostu w funkcjach rysowania dodajesz view_xview oraz view_yview. Przykład użycia:

GML
//DRAW

draw_text(view_xview+20,view_yview+20,'HP: '+string(global.hp));

draw_text(view_xview+20,view_yview+40,'MP: '+string(global.mp));

Odnośnik do komentarza
Udostępnij na innych stronach

Heh, racja. Zawsze sądziłem, że pokazywało to tylko zmienną "health", a kuba2153 napisał:

(od razu mówię, że nie toleruję healthbarów )

Więc można to zrobić tak:

GML
draw_healthbar(gracz.x-10,gracz.y-20,gracz.x+10,gracz.y-10,global.hp,c_red,c_green,0,1,1);

Aczkolwiek jeśli to nie wystarcza, możesz popróbować ze zrobieniem własnego healthbara za pomocą draw_rectangle(...);

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli nie wiesz jak to zrobić to daję skrypt niżej. Jeśli wolisz pokombinować sam to nie czytaj ^^

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Zrob sobie skrypt, np draw_my_healthbar, wstaw poniższy kod do niego i używaj go gdzie potrzebujesz :P

GML
//argument0 - x1

//argument1 - y1

//argument2 - x2

//argument3 - y2

//argument4 - ilosc hp

//argument5 - maksymalna ilosc hp

draw_set_color(c_black);

draw_rectangle(argument0,argument1,argument2,argument3,0);

draw_set_color(c_green);

draw_rectangle(argument0+1,argument1+1,argument2/argument5*argument4-1,argument3-1,0);

Odnośnik do komentarza
Udostępnij na innych stronach

rectanglowy:

GML
//argument 0 - wysokosc bara

//argument 1 - szerokosc

//argument 2 - zmienna

//argument 3 - max zmienna(zeby obliczysz procenty)

//argument 4 - kolor(c_*)

draw_set_color(c_gray)

//rysujemy tlo pod bara

draw_rectangle(10,10,10+argument0,10+argument1,0)//ostatni arg - 1=sama ramka, 0=wypelniony

draw_set_color(argument4)

//rysujemy te kreche prawidlowa

draw_rectangle(10,10,10+argument0,10+(argument1*argument2/argument3),1)

//i teraz ramke

draw_set_color(c_black)

draw_rectangle(10,10,10+argument0,10+argument1,1)//ostatni arg - 1=sama ramka, 0=wypelniony</span></span>

 

e:dupa, zapomnialem o x,y a nie chce mi sie poprawiac

up:daj obiektowi rysujacemu mane mniejszy depth, np -1

Odnośnik do komentarza
Udostępnij na innych stronach

rectanglowy:

GML
//argument 0 - wysokosc bara

//argument 1 - szerokosc

//argument 2 - zmienna

//argument 3 - max zmienna(zeby obliczysz procenty)

//argument 4 - kolor(c_*)

draw_set_color(c_gray)

//rysujemy tlo pod bara

draw_rectangle(10,10,10+argument0,10+argument1,0)//ostatni arg - 1=sama ramka, 0=wypelniony

draw_set_color(argument4)

//rysujemy te kreche prawidlowa

draw_rectangle(10,10,10+argument0,10+(argument1*argument2/argument3),1)

//i teraz ramke

draw_set_color(c_black)

draw_rectangle(10,10,10+argument0,10+argument1,1)//ostatni arg - 1=sama ramka, 0=wypelniony</span>

Zapomniałeś chyba o argumentach pozycji bo ten pasek rysuje się zawsze w x=10, y=10 :P

Zresztą podałem podobny, tylko twój bardziej rozbudowany^^

 

A to teraz pytanie;P Jak zrobić żeby napis "mana:" był widoczny np. na murze. Bo normalnie mi się za niego chowa :/

Ew. Jeśli rysujesz wszystko w draw'ie to zrób żeby mur się rysował jako pierwszy:

GML
draw_sprite(spr_mur,0,10,10);

draw_text(10,10,'Mur');

A jeśli to jest obiekt, to tak jak powiedział karolo, daj mu mniejszy depth(głębokość)

Odnośnik do komentarza
Udostępnij na innych stronach

Ok wszystko mam, ale mam znów pytanie. Otóż nie mam pojęcia, jak zrobić aby po przewinięciu scrollu myszki, obrazek jakiej magii sie aktualnie używa, pokazany w górnym rogu, zmienił się i żeby zmienił się także owy skill. ;D

 

Zaznaczam, że mam użycie skilla na PPM.

Odnośnik do komentarza
Udostępnij na innych stronach

a wiec, robisz sobie tablice 2wymiarowa:

 

GML
czar[0,0]='kula ognia' //nazwa

czar[0,1]=sprite_kula_ognia//sprite

czar[1,0]='costam' //nazwa

czar[1,1]=sprite_costam//sprite

czar[2,0]='costam' //nazwa

czar[2,1]=sprite_costam//sprite

czar[3,0]='costam' //nazwa

czar[3,1]=sprite_costam//sprite

czar[4,0]='costam' //nazwa

czar[4,1]=sprite_costam//sprite

itd

 

czary=4//ilsoc czarow-1

czar_teraz=1//aktualny czar</span>

(to w create)

 

(teraz step)

GML
sprawdzasz, czy byl uzyty skrol w myszce(jakas funkcja od tego jest, nie kojarze;x):

if(mouse_check_button(mb_scroll_up)){//ta linijka powinna wywalic blad :D

if(czar_teraz<czary)

czar_teraz+=1

else

czar_teraz=0

}

if(mouse_check_button(mb_scroll_down)){//ta tez

if(czar_teraz>0)

czar_teraz-=1

else

czar_teraz=czary-1

}

 

i teraz draw:

GML
draw_sprite(czar[czar_teraz,1],0,view_xview+5,view_yview+5)

draw_text(view_xview+70,view_yview+5,czar[czar_teraz,0])

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki wielkie działa ^^. A moglibyście mi jeszcze powiedzieć, jak zrobić rozmowę z NPC? Chodzi mi o to żeby można było wybrać odpowiedź np. (Ehh co ja bym bez was zrobił xDD)

 

Ehh wszystko było dobrze, ale jak dałem jeszcze drawa, czarów to mi wywala błąd, o nieznanej zmiennej (magia) Próbowałem trochę pozmieniać ale ciągle to samo :/

Odnośnik do komentarza
Udostępnij na innych stronach

Aha to póki co to mi wystarczy :D . Jeśli możesz, podałbyś mi przykład jak zrobić, aby bohater atakował "wręcz", mieczem czy innom bronią białą. Nie wiem po prostu jak zrobić żeby zadawał obrażenia przeciwnikowi jeśli, dystans dzielący ich nie wynosi wiecej niz 6 pix.(Ale żeby przy ataku się aktywowała animacja)

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if distance_to_object(obj_wrog)<=6 && keyboard_check_pressed(vk_space)

{

obj_wrog.hp-=10;

obj_bohater.image_speed=0.2;//z tym musisz popróbować, żeby była odpowiednia szybkość animacji, i pamiętaj, że max szybkość wynosi 1 więc musisz ułamkami

} else {obj_bohater.image_speed=0;}

Odnośnik do komentarza
Udostępnij na innych stronach

Aha ok. A można to jakoś napisać w samym stepie?

 

I mógłbyś mi wytłumaczyć czemu mam taki błąd jak zrobiłem sobie ekwipunek.

 

 

___________________________________________

ERROR in

action number 1

of Draw Event

for object o_plecak:

 

Error in code at line 3:

if (global.inventory[1,36] <> noone) {draw_sprite(global.inventory[1,4],global.inventory[1,4],view_xview[0]+920+24+(3

2*0),view_yview[0]+431+31+(32*0));}

^

at position 13: Unknown variable inventory or array index out of bounds

 

___________________________________________

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