Tymon, jeżeli chodzi o twój... Ja bym zadeklarował te zmienne w poszczególnych obiektach graczy, a w osobnym dał bym :
draw_rectangle(gracz1.pozx,gracz1.pozy-(gracz1.wysokosc/2),gracz1.pozx+((gracz1.hp/gracz1.max_hp)*
gracz1.dlugosc),pozy+(gracz1.wysokosc/2),1);
draw_rectangle(gracz1.pozx,gracz1.pozy-(gracz2.wysokosc/2),gracz2.pozx+((gracz2.hp/gracz2.max_hp)*
gracz2.dlugosc),pozy+(gracz2.wysokosc/2),1);
Albo po prostu dał :
draw_rectangle(pozx,pozy-(wysokosc/2),pozx+((hp/max_hp)*dlugosc),pozy+(wysokosc/2),1);
tylko że w prawym górnym rogu z menu ( w Execute a Piece of Code ) wybrał bym obiekt którego ma tyczyć się akcja ;)
btw. nie widze sensu przy deklarowaniu zmiennych mających jedynie przechowywać wartośc x i y obiektu ale już...