Przykład jest słaby moim skromnym zdaniem :/ . Fajnie to wygląda, ale od strony kodu - tragedia. Przede wszystkim martwi mnie mieszanie renderu z updatem. No i ten bałagan w kodzie. Ale mniejsza z tym. Wyciągamy fragment rysowania broni:
GML
draw_sprite_ext(s_bron,0, // Bro? (PRAWA)
x + lengthdir_x(13,dir-90+(sinus*1.2)) + lengthdir_x(21,dir+(sinus*2.2)),
y + lengthdir_y(13,dir-90+(sinus*1.2)) + lengthdir_y(21,dir+(sinus*2.2)),
1,1,dir+70+(sinus*3.5),c_white,1);
Mamy więc podane współrzędne, kierunek oraz na podstawie origina środek ciężkości. Możesz np. sprawdzać kolizję linii. Ja bym napisał wszystko do zera pod własne potrzeby, gdyż prawdopodobnie interesują Ciebie idealne kolizje, a o tych w tym przykładzie zapomnij (broń nie jest obiektem - skandal).
Jak dla mnie cały ten przykład to sztuka dla sztuki, fajnie się prezentuje, ale zero wartości edukacyjnej ;) . Peace.