トピック
コウイチ 344344k

ボタン同時押しについて

@LOOP BT=BUTTON() IF BT==#RIGHT THEN ?右 IF BT==#DOUN THEN ?下 GOTO @LOOP これで実行すると上ボタンと右ボタンが同時に押せません。 どうすれば同時に押すことが出来ますか?
0そうだね
プレイ済み
返信[1]
親投稿
SEKI22 rcftgrsfrr578
×BT==# ○BT AND #
1そうだね
プレイ済み
返信[2]
親投稿
SEKI22 rcftgrsfrr578
VSYNCかWAIT付けた方が良いよ
3そうだね
プレイ済み
返信[3]
親投稿
シュナ S_S_Schneider
ボタン入力処理で 初心者が失敗しやすいとこですね。コレ。 実は BUTTON命令は 単独押しと 同時押しでは 返ってくる値が違います。 単独で押すと 上キー入力 : 1 下キー入力 : 2 左キー入力 : 4 右キー入力 : 8 がそれぞれ返ってきますが 同時押しだと 上記の押したキーの 合計値が 戻る仕組みなのです。 なので IF BT == (#DOWN + #RIGHT) THEN ですね。
6そうだね
プレイ済み
返信[4]
親投稿
シュナ S_S_Schneider
SEKIさんのように AND (ビット演算子の一つ)を利用する場合は IF (BT AND #DOWN) && (BT AND #RIGHT) THEN AND を利用する利点は 下と右キー以外に Aボタンを押していたとしても 条件として成立するところです。 (== ですと 下右キーでは 反応しますが そこにA を追加で同時押ししちゃうと 反応しなくなります。 A:16 も加算された値が 返ってくる為です。)
2そうだね
プレイ済み
返信[5]
親投稿
シュナ S_S_Schneider
ビット演算子については 難しいので ここでは割愛しますが 気になったら調べてみるのもいいでしょう。
0そうだね
プレイ済み
返信[6]
親投稿
コウイチ 344344k
そうだったんですか! 回答ありがとうございます。早速試してみますね
0そうだね
プレイ済み
返信[7]
親投稿
コウイチ 344344k
ちゃんと機能しました! ありがとうございます。
1そうだね
プレイ済み