image_angle bez pro możesz zrobić tak (przy 360 sprite(niewydajne)):
GML
image_single=direction
przy 60 sprite:
GML
image_single=direction/6
a co do rysowania global.umiejetnosc=0 to:
GML
if global.umiejetnosc=0
{
sprite_index=sprite1
}
global.umiejetnosc=1
{
sprite_index=sprite2
}
A naprzykład tak:
GML
direction=instance_nearest(x,y,obj_parent);
Taki kod zmieni direction (kierunek obiektu któremy dasz ten kod) na pozycję x, y najbliższego obj_parent.
Więc daj obj_parent jako parent obiektowi 1 i obiektowi 2 i powinno działać jak chciałeś.
Przy przechodzeniu między roomami (albo w trakcie gry) zapisuj dane w pliku *.ini, potem, w odpowiednim momencie je wczytuj i usuń plik *.ini z danymi.
Chyba że ktoś ma bardziej wydajny pomysł to niech powie.
Ale jak da graczowi peristent no to ok, ale domyślne ustawienie jakiegoś tam obiektu może być
GML
x=50;
y=80;
a jak on będzie grał to się zmieni na inne, np:GML
x=35;
y=48;
i muchodzi chyba o to aby przy przechodzeniu między roomami ta wartość się nie zmieniała.
Bo jak przejdzie, room się "zresetuje" i znowu będzie:
GML
x=50;
y=80;
zamiast: GML
x=35;
y=48;
GML
if global.weapon=1
{draw_text(x, y, nazwa_broni)}
if global.umiejetnosc=1 and distance_to_point(mouse_x,mouse_y)<=50
{
obiekt.x = mouse_x
obiekt.y = mouse_y
}
A teraz ?
Ten flamethrower wygląda jak czerwone rzygi, pociski jak pilum a postacie jakby trzymały pilota tv.
GM to nie "Game Editor" tylko Game Maker.
Ale pewnie jeszcze to poprawisz ;p
Dodaj warunek:
GML
if global.weapon=1
{draw_text(x, y, nazwa_broni)}
if global.umiejetnosc=1 and distance_to_point(mouse_x,mouse_y)<=50
{
obiekt.x = window_mouse_get_x();
obiekt.y = window_mouse_get_y();
}