Mir ist klar, dass das hier niemand so bald lesen wird, aber egal. Wer ein rotierendes Menü in seinem Spiel haben will kann diese drei Skripte verwenden. Man kann praktisch alles umstellen (speed, radius, anzahl der icons, noch mindestens 2x speed für was anderes, sprites, die button,...).
Hier das init (skipt beim createn ausführen):
Hier das step skript:
Alles anzeigen
und das hier ins draw event (das skript):
Alles anzeigen
Hier das init (skipt beim createn ausführen):
Hier das step skript:
GML-Quellcode
- left_b=argument0 //button mit dem man nach links steuert
- right_b=argument1 //rechts
- enter_b=argument2 //auswahl button, achja ist noch nicht im skript drinnen, einfach bei mid eine abfrage machen und schauen was act ist
- r=argument3 //radius
- stp_to_mid=argument4 //wie viele steps das icon zur mitte braucht
- rot_a=argument5 //wie viel Grad sich die icons pro step drehen...aufpassen 360*icon_anzahl(=count) sollte durch rot_a teilbar sein!!
- count=argument6 //icon anzahl
- if angle=360 {angle=0}
- if angle<0 {angle+=360}
- switch (keyboard_key)
- {case (left_b):
- rot=1;break;
- case (right_b):
- rot=-1;break;}
- if act=-1 {angle+=rot_a*rot}
- n=count-(angle*count/360)
- if angle==0 {n=0}
- if frac(n)!=0 {n=-1}
- if out==true {out=false}
- if n!=-1
- {if act==n {dis+=r/stp_to_mid*gotomid}
- else {dis=0; gotomid=1;rot=0}
- if act==n&&dis=0 {out=true}
- else {out=false}
- act=n
- if dis>=r {dis=r; mid=true}
- else {mid=false}
- if dis<0 {dis=0; out=true}
- if keyboard_key=left_b {gotomid=-1;rot=1}
- if keyboard_key=right_b {gotomid=-1;rot=-1}
- if out==true {act=-1; mid=false; gotomid=1;n=-1}
- }
- else
- {act=-1}
- if mid==true {return (act)}
- else {return ( -1)}
und das hier ins draw event (das skript):
GML-Quellcode
- x_m=argument0 //Mittelpunkt x
- y_m=argument1 //Mittelpunkt y
- spr=argument2 //sprite
- count=argument3 //Anzahl der Icons
- r=argument4 //Radius
- for (p=0; p<=count-1; p+=1)
- {if act==p {r_d=r-dis; trp=(0.25-(r_d/(r*4)))+0.75; scale=2-(r_d/r)}
- else {r_d=r; trp=0.75; scale=1}
- draw_sprite_ext(spr,0,x_m+lengthdir_x(r_d,angle+((360*p)/count)+90),y_m+lengthdir_y(r_d,angle+((360*p)/count)+90),scale,scale,0,c_white,trp)}
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Trompadon ()