プチコン3号 SmileBASIC コミュニティトピックシオン ITE310402016/03/30 22:03:55質問BUTTON命令5秒間に、一回でもAボタンを押せば@1にいけるようにするには、どうしたらいいですか?1そうだね 13返信プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿nobu divine-creator2016/3/30 22:285秒間に…ってところがハッキリ分からないけど、6秒経過したらボタンを押してもダメってこと? それなら、ボタン命令の後に5秒待つようにして、6秒後には次へ進むようにすれば良いんじゃない? 通常の無限ループ内にボタン命令を入れれば、5秒どころか押されるまでずっと待つわけだから、そうしたいという話じゃないですよね?1そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿シオン ITE310402016/3/30 22:38IF BUTTON(2)==#A THEN WAIT 300 GOTO @1 ENDIF ってこと?0そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿otta777 otta777a2016/3/30 22:57M=MAINCNT WHILE MAINCNT-M<300 && (BT AND #A)==0 BT=BUTTON(2) WEND IF (BT AND #A)!=0 THEN GOTO @1 PRINT "5秒経過" END @1 PRINT "Aボタン” END こういうことでいいのかな?1そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿ネタバレコータ[quota] W.D.WE2016/3/30 23:041例を考えて見ました。 1)5秒間の開始時に、Aボタンが押されたことを忘れ2の監視を始める。 2)5秒間1/60秒毎に、以下の2つを監視する。 2-1)Aボタンの状態を調べる。Aボタンが押されたら、Aボタンが押されたことを記憶する。 2-2)5秒間過ぎたかを調べる。5秒間過ぎていたらAボタンが押されたかを調べ、押されていたら@1の処理をする。 注)ループの範囲は条件が示されていないので、適当にやってください。 こんなので、答えになっているでしょうか。1そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿nobu divine-creator2016/3/30 23:05いや、それだとボタンが押された後に、5秒待ってから次へ進むことになるけど、そうしたいんじゃないよね? WAIT 300を最後にすれば、ボタンが5秒以内に押されれば@1へ進み、押されないまま6秒経てば次へ進むことになるはずですよね?1そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿コーンクリームポテト CEOCEO2016/3/30 23:05五秒間待ってから、その中でボタンが押されたかどうかを判別する、という解釈でよろしいでしょうか。 でしたらまず、 押されたかどうかを判別するフラグを定数として定義して下さい。ここではF=0としておきます。 そしてループの中で5秒待つ必要があるので、フレーム数を代入する変数も必要になります。ここでは、T=300としましょう。 ループ内は、BUTTON()関数が反応したらAが0でなくなるような命令、そして300フレームだけ数える命令、つまり1フレームでTが1減るようにすればOKです。 そして、Tが0になったときに、Aが0であるかどうかを判別して、0でなかったら@1に飛ぶようにすればおしまいです。1そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿コーンクリームポテト CEOCEO2016/3/30 23:09まとめると、こんな感じです。 A=0 T=300 WHILE T>0 DEC T VSYNC IF BUTTON()!=0 THEN A=1 WEND IF A!=0 GOTO @1 (このサンプルはあくまで参考です)1そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿シオン ITE310402016/3/30 23:26多分こうですね。 5か6かわからないSさんに怒らないでください。(てへぺrrrrr(殴0そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿ΖΕΧ ZEX2562016/3/30 23:56FOR I=0 TO 60*5:WAIT IF#A==BUTTON(2)GOTO@1 NEXT END @11そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿ネタバレコータ[quota] W.D.WE2016/3/31 0:14タイムアウト時間が5秒のAボタン入力待ちなら余計な表示がされますが、 DIALOG "",,,5 IF RESULT==1 THEN @1 END @11そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿ネタバレΖΕΧ ZEX2562016/3/31 1:35ちょっとミスった FOR I=1 TO 60*5:VSYNC の方がいいか1そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿neet#ニート# HIMAJIN.MIV2016/3/31 13:07ーーーーーーーー MC=MAINCNT WHILE MAINCNT-MC<60*5 IF BUTTON==#A THEN 処理 WEND ーーーーーーーー WHILEの条件式について。 MAINCNT-MCはプログラム実行からのフレーム数で5秒間だけループする仕様となりその中でAを押したかをIF文を使って判定。すなわち5秒間内にAを押したかを判定することができる。1そうだね プレイ済み2017/11/03 18:15:03に取得
プチコン3号 SmileBASIC コミュニティ返信[13]親投稿シオン ITE310402016/4/1 21:37ありがとうございます。 できました! これで、できるようになるぞ。0そうだね プレイ済み2017/11/03 18:15:03に取得