投稿
ちゃむ tyamusan
初心者が作ったしょぼいプログラム どのボタンを押しているか分かります
8そうだね
プレイ済み
返信[1]
親投稿
うちゅうじん kunieda.hnh
==をANDに変えると同時押しも検知できるんだお
0そうだね
プレイ済み
返信[2]
親投稿
ちゃむ tyamusan
そうなんですねだお
1そうだね
プレイ済み
返信[3]
親投稿
ゆうたん yu-tan-sama
うちゅうじんさんの説明はちょっと足りないのよ 厳密には(BUTTON(1) AND 16) == 16って感じかな まず、ボタン命令の結果と16をビット演算でANDを取ります ANDを取ると二つの値で一致したビットだけが残るので、同時押ししてるボタンがなんであっても0か16の2パターンの結果が得られます これだけなら0=FALSE 0以外=TRUEと判断されるので問題ないのですが BUTTON(1) AND 5の場合、つまり↑←同時押しで斜めのケースですね この結果は0、1、4、5の4パターンになってしまうので斜め以外でもTRUEと判断されてしまいます なのできっちり(BUTTON(1) AND 5)==5として斜めだけを認識するようにしてあげる必要があるのです
0そうだね
プレイ済み
返信[4]
親投稿
斜めを上と右とか2つのボタンを両方押したと判断する(両方のIFを通す)場合はANDだけでも問題ないですよ。 ただ斜めだけを厳密に判断して処理したい場合はゆうたんさんの言うように判断しなければならないって感じですね。 この辺はケースバイケースだと思います。
0そうだね
プレイ済み
返信[5]
親投稿
まあそもそもとして上記のプログラムは同時押しを考慮した表示でないので最後の方に通るIFが優先されちゃいますけどねー…。
0そうだね
プレイ済み
返信[6]
親投稿
ツララ LongIceSword
十字キーの斜め入力って実装しようとすると意外と難しいんですよね。 大抵上下か左右が先に入力されちゃうから、普通の縦横の移動でも2回目の入力検知で方向決定ってやると微妙にカクカクしたり。
1そうだね
プレイ済み
返信[7]
親投稿
ちゃむ tyamusan
難しいですね これをゲームにするとしても 斜めはスライドパッド君に任せますw
0そうだね
プレイ済み
返信[8]
親投稿
うちゅうじん kunieda.hnh
ANDを使えばボタンを複数押しても検知できるのか~。 ぐらいに思っておけば大丈夫です。 ただ、ビット演算を知っておくといろいろ便利なので、詳しく知りたいと思ったときに調べてみるといいです。
0そうだね
プレイ済み
返信[9]
親投稿
ちゃむ tyamusan
はい!(笑) 使う時になったらggってみます
0そうだね
プレイ済み