トピック
コノハ mohugitune

初心者ですがSPの移動方法が思いつきません

SPをローグライクのように、 横キー入力で一つ右、斜め入力で斜め移動としたいのですが、 その際に他のボタンを押していると反応しない(動かさない)ようにしたいのです。 自分でやってみたのですが中々上手く行かず… どのようなプログラムにすればよいのでしょうか
1そうだね
プレイ済み
返信[1]
親投稿
はっきり言ってかなり面倒です。 方法は2つほどあります。 方法1 例えば上ボタンの場合 IF (B AND #up+#a#+#b+#x+#y+#l+#r+#zl+#zr)==#up THEN~ みたいにする方法です。
1そうだね
プレイ済み
返信[2]
親投稿
2つめの方法 IF B==1 THEN~ '上 IF B==2 THEN~ '下 IF B==4 THEN~ '左 IF B==8 THEN~ '右 IF B==5 THEN~ '左上 IF B==9 THEN~ '右上 IF B==6 THEN~ '左下 IF B==10 THEN~ '右下 のように全てのパターンで判定する方法 (分かりづらくてすみません)
1そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
十字ボタン以外のボタンを押している間は十字ボタンの操作(キャラ移動)を無効化したいのであれば十字ボタン判定をIF B<#A THENとENDIFで囲めば良いだけだと思います。 要するに十字ボタンの値は#Aの値より小さくなるためその値を示す時だけボタン判定を行うわけです。 他のボタンを押している時は十字ボタン操作のIF文は実行されないのでキャラ移動の判定部分は自由に行ってもらって構いません。
2そうだね
プレイ済み
返信[4]
親投稿
ΖΕΧ ZEX256
AND を使う代わりに == にするだけだよ? ANDは特定のビット(ボタン情報)を取り出して判定するから、他のボタンが押されてもお構いなし。 一方、==は全てのボタンの状態をまるごと判定する。 例えば IF BUTTON()==#RIGHT THEN なら右ボタンのみが押され、他のボタンが押されてない、ということを判定できる。 右上だったらIF BUTTON()==(#RIGHT OR #UP) THEN でできるよ
1そうだね
プレイ済み
返信[5]
親投稿
コノハ mohugitune
皆さんのおかげで出来ました! ありがとうございました?
0そうだね
プレイ済み
返信[6]
親投稿
コノハ mohugitune
ありがとうございました!
0そうだね
プレイ済み