Napisałem Ci jeszcze przed Twoim postem, że używasz złej pozycji :P
Użyj collision_line, lub sprawdzaj sobie y gracza. coś jak:
GML
if abs(y-obj_gracz.y)<20{
//Kod
}
Abs działa na zasadzie, że zawsze zwraca Ci wartość dodatnią jakbyś nie wiedział ;)
Tak, tak jest.
I poza tym:
GML
if !variable_global_exists('gamepad_mode')
{
global.gamepad_mode=false; //tutaj gamepad wylaczony
global.gamepad_a=5; //przycisk A
global.gamepad_d=6; //przycisk D
global.gamepad_space=3; //przycisk Spacja
//zywamy domyslnych z pada czyli x-axis,strzalek nie definiujemy
}
Miałeś to zrobić na ini, a nie znów ta funkcja, ona jest taka...bezużyteczna? :/
Wykorzystaj do tegp np plik ini. Gdy gracz będzie przełączał pomiędzy klawiaturą a padem to to zapisuj, a przy odpaleniu gry sprawdź, jaka wersja jest wybrana ;)
Twoja metoda nic nie da, bo i tak za każdym wejściem do gry globalne są usuwane.
Co chcesz osiągnąć tym sposobem?
Chcesz, żeby za każdym uruchomieniem gry było trzeba pada włączać, czy jak raz się zmieni, to na zawsze zostaje do odwołania?
W Drawie też mogłeś mieć.
Różnica jest taka, że Draw_GUI pokazuje zawsze widoczny widok(masło maślane), w sensie, że pozycje są ustalone od obecnego ustawienia viewu.
W Draw pokazuje w pozycjach rooma. Jeśli chcesz, żeby było zawsze widoczne, to piszesz np: x+view_xview[0].
GML
draw_sprite_ext(spr_tlen,0,2,2,tlen/10,1,0,image_blend,1);
Prosta matma, musisz dzielić a nie mnożyć :P
I to draw jest w bohaterze? W takim razie nie musisz pisać obj_player.
Wyrzuć to ze stepa i zrób jak threef napisał.
W Draw:
GML
if tlen<10 draw_sprite_ext(spr_tlen,0,2,2,obj_player.tlen*10,1,0,image_blend,1);
Wszystkie funkcje z draw_* wstawiaj tylko do draw.
GML
if distance_to_object(obj_woda)<1 draw_sprite_ext(spr_tlen,0,2,2,obj_player.tlen*10,1,0,image_blend,1);
Zależy. Ext po prostu rozciąga pasek, natomiast part ucina go. Jak jest cały jednolisty w poziomie, to żadna różnica ;)