スライドパッドのナナメ判定、自分もこのお正月に色々と試したのですが、
IF BTN AND 1 THEN ~の所を
IF BTN AND 1 || SY>0.35 THEN ~でいけました。
スライドパッドを4方向に制限する場合は SY>0.62 くらい。
SX,SYの値を実測すると、約-0.8666~0.8666の範囲で動いているようなので、45°にパッドを入れた時の値は
0.866÷1.414(ルート2)=約0.6124
(2辺(0X,0Y)が0.866の直角三角形の直角(0,0)から底辺に向かって垂直に下ろした線の長さ←字で書くと難しいですが絵に描くと簡単(^^;))
なので、SY>0 を SY>0.62 にすると、上と左右を同時に入れられなくなるみたいです。昨日私も皆さんを参考にボタン操作のサンプルアップしてみました。
いわゆるごり押しでも、分かりづらくなければそれはそれでありだと思ってます。特に慣れないうちは試行錯誤の連続ですので、作りながら程々にベターを目指す、みたいな感じでよいと思いますよ(^O^)
ちょうど最近似たようなことをしたので、別のアプローチとして参考までに。
IF ABS(SX)+ABS(SY)<一定 then 入力なし
ROT=360/(2*PI())*ATAN(SY,SX)
ROT=(ROT+22.5+360) MOD 360
DIR=ROT DIV 45
DIRは0から7までで、右から順に右上、上、左上………と半時計回りになります。
ここから移動の処理などと連携させたい場合は、[8,2]の配列をつくって、方向ごとに移動がプラスなのかマイナスなのかゼロなのか、もしくはちょっとなのかをXYごとに持つとやり易いかもしれません。