プレイ日記
ダイス的なものを、作りたいんですけど(一秒ごとにランダムな数字を表示する)なんか、うまくいかない・・・・・
4そうだね
プレイ済み
返信[1]
親投稿
Aをおしたらリセットていうのが出来ない・・・
0そうだね
プレイ済み
返信[2]
親投稿
BUTTON(2)の判定は 1ループの時間 = VSYNC 1 が要求される(WAIT 10だと押しても無視される可能性が高い)
0そうだね
未プレイ
返信[3]
親投稿
また、ACLSはここでは不要な処理が多い、プログラムの最初以外は、CLSが良い
1そうだね
未プレイ
返信[4]
親投稿
↑えー!!じゃあ遅くするには、どうしたらいいの?!
1そうだね
プレイ済み
返信[5]
親投稿
IF文をうまく使って、60回に1回だけ数字を変えればいい
2そうだね
未プレイ
返信[6]
親投稿
ヒント:割った余りの求める記号 MOD
1そうだね
未プレイ
返信[7]
親投稿
↑初心者だからわかりません。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
単純に遅くするだけならばWAIT 60とかVSYNC 60とかをメインループにはさめば1秒ごとに表示している数字を変えることができます。 しかし、その場合は最長で1秒間ボタンを押し続ける必要があります。 それが特に問題ではないというのであればBUTTON(2)ではなくBUTTON()に変更すればよいだけです。 実はBUTTON()(もしくはBUTTON(0))ではなくBUTTON(2)ではボタンを押した瞬間のみ対応できるというメリットがありますが、60fpsで動作しているプログラム(VSYNC 1もしくはVSYNCを挟んだもの)でないと正常に動作しないという問題があるのです。 つまり、ボタンを押した瞬間にすぐにメインループは60fpsで動かして表示のみ1秒に1回変えるという処理を行う必要があるわけです。
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
適当な変数の値をVSYNC 1を挟んだメインループ1回ごと(1フレームごと)に1ずつ増やしてやってそれが60の倍数になった場合に数字を表示するという方法を用いればボタンはすぐに反応して表示は1秒単位で変わるというのを実現できます。 1フレームごとに1ずつ増える変数というのはシステム変数で用意されていてMAINCNTという名前の変数が60の倍数かどうかで判断も可能です。 また「1秒ごと」であれば内蔵時計の時間を取得するTIME$の値が変わったかどうかで判断も可能です。 方法はいろいろあるので実際に自分の手で試してみると良いと思います。
1そうだね
プレイ済み
返信[10]
親投稿
みんな、英語わかるの?
1そうだね
プレイ済み
返信[11]
親投稿
↑はい。ボチボチですが・・・・
0そうだね
プレイ済み
返信[12]
親投稿
はる HARUHI-0913
こくと○ boxという方へ 英語とかコミュニティに関係の無いことを言って、 コメント欄を荒らさないで下さい。 通報しますよ。 後、他人に暴言を吐いてブロックする行為もやめて下さい。 貴方のような悪質ユーザーは、 このコミュニティにいるべきでは無いと思います。
1そうだね
プレイ済み
返信[13]
親投稿
はる HARUHI-0913
主さん CLS @MAIN IF C MOD 60 THEN A=1+RND(6) PRINT A ENDIF B=BUTTON(2) IF B AND #A THEN ACLS INC C VSYNC GOTO @MAIN でできると思います。
1そうだね
プレイ済み