投稿
Rwi RWIIUG0129
スライドパッドの入力範囲を、十字ボタンと同様、8方向に限定させるテストプログラムが出来ました。 参考になるかどうかは微妙な出来ですが、プログラム文をコメント欄に載せておきます。 プログラムを打ち込んでいて、もっと他に、効率の良いプログラムの書き方はあるはず…!!とは思うのですが。そこまで考え込んだ結果、作品が作れず仕舞いとなっては元も子もないので、初心者のうちはそこまで効率を気にしなくてもいいのかな、と思います。
7そうだね
プレイ済み
返信[1]
親投稿
Rwi RWIIUG0129
プログラム文 1/3
0そうだね
プレイ済み
返信[2]
親投稿
Rwi RWIIUG0129
2/3
0そうだね
プレイ済み
返信[3]
親投稿
Rwi RWIIUG0129
3/3
0そうだね
プレイ済み
返信[4]
親投稿
Rwi RWIIUG0129
う~ん。なんともゴリ押しなプログラムで、恥ずかしいです。 斜め入力の判定方法は、もう少しどうにかした方が良さそうですね。
0そうだね
プレイ済み
返信[5]
親投稿
めがね tatsugu
スライドパッドのナナメ判定、自分もこのお正月に色々と試したのですが、 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 にすると、上と左右を同時に入れられなくなるみたいです。昨日私も皆さんを参考にボタン操作のサンプルアップしてみました。
1そうだね
プレイ済み
返信[6]
親投稿
Rwi RWIIUG0129
なるほど、こちらの方がプログラムも短く、分かりやすいですね!処理も軽そうです。 4方向のみに移動を制限する方法も、参考になりました。 ただ、ひとつ懸念を挙げるとすると、スライドパッドと十字ボタンを同時に操作した場合  「上と下が同時に押されている」 等の、普通ならあり得なかった入力が発生してしまうので、想定外の動作の遠因となる可能性があるかもしれませんね。 操作感はプレイヤーとの接点も強く、ゲーム作成の上で、一番手を抜いてはいけない所ではないでしょうか。 今回のプログラムで、キャラクターの移動ひとつとっても、非常に奥が深いということを実感しました。
1そうだね
プレイ済み
返信[7]
親投稿
けい kei0baisoku
いわゆるごり押しでも、分かりづらくなければそれはそれでありだと思ってます。特に慣れないうちは試行錯誤の連続ですので、作りながら程々にベターを目指す、みたいな感じでよいと思いますよ(^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ごとに持つとやり易いかもしれません。
2そうだね
プレイ済み
返信[8]
親投稿
めがね tatsugu
おおっ! 十字キーとパッドの同時押しとは 考えも及びませんでした! そう考えると、ゲームのデバッグって大変なんですね... 普通に動くことがどれだけありがたいか痛感します。 けいさんのアイデアも後で試してみようと思います!
1そうだね
プレイ済み
返信[9]
親投稿
Rwi RWIIUG0129
けいさんのアイデア、とても参考になりました! 特にマイナスの値をMOD計算する、という方法には目から鱗です。 ATANの使い方や配列の使用方法など、今の自分にはまだまだわからないことばかりですが、いつの日かそれらも理解できるよう、コツコツ努力していきたいと思います。
0そうだね
プレイ済み
返信[10]
親投稿
けい kei0baisoku
いえいえ(´ω`) 三角関数は、本当は図に描いた説明があれば分かりやすいんですけどねー。 頑張ってください~(´ω`)/
1そうだね
プレイ済み