投稿
だいふく daifukusenchou
今ストップウォッチアプリを制作していて、1ループにつき、0.01秒(0.6フレーム)進める仕様にしています。 そこで、ループの最後に、「WAIT 0.6」をいれたいのですが、小数点以下は対応していないらしいので困っています。 この場合の対処法って、あるのでしょうか?
2そうだね
プレイ済み
返信[1]
親投稿
TINY TINY-YAROU
プチコンに限らないのですが、世の中のゲームの多くは1/60秒単位で動いており、それらのゲームは1/60秒=0.016666…秒(=WAIT 1)よりも短い単位では時間を測ることは難しいです。 1/100秒まで表示するレースゲームなんかも、1/60秒で計測して、あとはゴールラインからの距離や速度から計算して1/100秒を求めていたりします。 プチコンも、最も細かいMAINCNTというタイマーでも1/60秒ごとにカウントアップされているので、それ以下の単位での測定は諦めたほうが良いかと思います…。
1そうだね
プレイ済み
返信[2]
親投稿
TINY TINY-YAROU
ちなみに、毎フレームごとにWAITしてカウントアップすると、処理によっては誤差が出てしまうので、MAINCNTを使うと良いと思います。 実行してから何かボタンが押されるまでの時間を測るサンプルを書いてみました。参考になりますか? T=MAINCNT @W WAIT IF BUTTON(2)==0 THEN @W T=MAINCNT-T ?T/60;"びょう"
0そうだね
プレイ済み
返信[3]
親投稿
だいふく daifukusenchou
やはり、そうですよね…。0.1秒までに諦めます。 二つ目のやつ、参考にさせていただきます。 回答ありがとうございました。
0そうだね
未プレイ
返信[4]
親投稿
TINY TINY-YAROU
あ、1/100秒まで表示しても、誤差はあるにしても、正しいことは正しいです。 ただ、0.016666秒の次が0.033333秒なので 「0秒02」のような時間は絶対に表示されないというくらいで、特に問題はないと思いますよ(^_^)
1そうだね
プレイ済み