kriso99 Opublikowano 22 Czerwca 2014 Udostępnij Opublikowano 22 Czerwca 2014 Wirtualne pady na ekranie przykład przeznaczony raczej na platformy mobilne pad wykorzystuje multitouch, można dać tyle padów ile mamy multitouchowy telefon/tablet(np jeden do chodzenie, drugi do patrzenia) //jezeli użyjesz tego przykładu w grze dodaj mnie do credits i poinformuj na PW, dzieki pierwszy skrypt dajemy do jakiegoś obiektu który kontroluje całą grę, skrypt zwraca nam id pada przykłady położenia: prawy górny róg GML var size=display_get_gui_width()/10 x=display_get_gui_width()-size-size/5 y=size+size/5 lewy górny róg GML var size=display_get_gui_width()/10 x=size+size/5 y=size+size/5 prawy dolny róg GML var size=display_get_gui_width()/10 x=display_get_gui_width()-size-size/5 y=display_get_gui_height()-size-size/5 lewy dolny róg GML var size=display_get_gui_width()/10 x=size+size/5 y=display_get_gui_height()-size-size/5 oczywiście wartości x i y podstawiamy w skrypcie scrPad_create GML (scrPadcreate) /*----------------------------------------------------------------------------*/ /*--------------id_pada=scrPad_create(x na gui,y na gui, wielkość)------------*/ /*----------------------------------------------------------------------------*/ var i=instance_create(0,0,objPad) with(i) { size=argument2 pad_x=argument0 pad_y=argument1 pad_odl=0 mouse_id=-1 } return i drugi skrypt dajemy do step obiektu objPad GML (scrPadstep) /*----------------------------------------------------------------------------*/ /*--------------------------------scrPad_step()-------------------------------*/ /*----------------------------------------------------------------------------*/ if mouse_id!=-1 { if device_mouse_check_button(mouse_id,mb_any) { image_angle=point_direction(pad_x,pad_y,device_mouse_raw_x(mouse_id),device_mouse_raw_y(mouse_id)) pad_odl=min(size-size/3,point_distance(pad_x,pad_y,device_mouse_raw_x(mouse_id),device_mouse_raw_y(mouse_id))) }else mouse_id=-1 } else { for(var i=0;i<=5;i+=1) { if device_mouse_check_button_pressed(i,mb_any) { if point_distance(pad_x,pad_y,device_mouse_raw_x(i),device_mouse_raw_y(i))<=size { mouse_id=i i=6 } } } pad_odl=max(0,pad_odl*0.9) } trzeci skrypt to tylko i wyłącznie wyświetlanie, każdy może sobie zrobić inaczej. dajemy go do draw gui w obiekcie objPad GML (scrPaddraw) /*----------------------------------------------------------------------------*/ /*--------------------------------scrPad_draw()-------------------------------*/ /*----------------------------------------------------------------------------*/ draw_set_color(c_black) draw_circle(pad_x,pad_y,size,1) draw_set_alpha(0.5) draw_circle(pad_x+lengthdir_x(pad_odl,image_angle),pad_y+lengthdir_y(pad_odl,image_angle),size/3,0) draw_set_alpha(1)//dałem to na wszelki wypadek</span> Jak pobieramy kierunek pada? to proste GML kierunek=id_pada.image_angle id_pada pobraliśmy przy skrypcie scrPad_create Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę