投稿
HRK TOM-SAN.334
ボタン入力でコマンド選択を行うプログラムではwait文で適切な長さの待ち時間を与えないと面倒なことになります。Aボタンを押して決定したと思ったら次のコマンドも決定してしまうとかね。 はい、俺がそれをやらかしました。ボタン入力後のwait文、絶対に忘れないでね。
5そうだね
プレイ済み
返信[1]
親投稿
イーブン rein-2000
WAIT以外にも方法はありますよ~ 例えばボタンを押したときに 変数に10を入れたとして それを1F毎に1ずつ減らしていく。 そしてその変数が1より下なら ボタン入力を受け付けるようにすれば 次コマンドが勝手に選択される問題の 他にも連打防止にも効果があります。
0そうだね
プレイ済み
返信[2]
親投稿
BUTTON(2)などを利用すれば必ずしもWAITである必要はないと思いますが、ただVSYNCを通らなかったり逆に処理が遅すぎると上手く動かないこともあるので、その辺は注意ですね。
0そうだね
プレイ済み
返信[3]
親投稿
けい kei0baisoku
画面が遷移した後、1フレーム以上ボタンを離してから初めて受け付けるように、というやり方もありますね。かなり堅い部類の方法だと思います。
0そうだね
プレイ済み
返信[4]
親投稿
私がはまったほかの類似例 1)Aボタンで選択後LINPUTで文字列を入力しようとしたら、エンターキーが入力されたとみなし、””しか入力できなくなりました。 2)RUN+エンターで実行を開始したら、タッチパッドでタッチされたと判断し、期待しない処理を実行してしまいました。 WAITを入れて仮対処しています。
0そうだね
プレイ済み
返信[5]
親投稿
HRK TOM-SAN.334
wait文以外でもいろいろと対策方法はあるみたいですね。 ちなみに私がハマったのはコータさんの1)のやつです。なぜ入力できないのか悩みました。
0そうだね
プレイ済み
返信[6]
親投稿
まげ MAGE_LOVEMARINE
「何かボタンを押すまで待つ」プログラムで私は REPEAT:UNTIL BUTTON():WHILE BUTTON():WEND と組んでいます。押すまで繰り返せ、離すまで繰り返せ。プチコンには「勝手な人!」と思われてそう…(^^;)。 ちなみに、Aボタンで終わるように組むと、OKがダー…と連打されるのがイヤなので、それ以外で終わるよう心がけています。
0そうだね
プレイ済み
返信[7]
親投稿
TERA(LL) tera0413
戻りの先頭で REPEAT:UNTIL !BUTTON() でボタンバッファ(あるのか?そんなもん)クリアしてます ボタン押しっぱなしにすると先に進めないですがw
0そうだね
プレイ済み