|
|
2015/1/25(Sun) 14:56:47|NO.67073
ミリ秒単位のストップウォッチ
これです。
*main
redraw 0
color 0, 0, 0 : boxf
font msgothic, 80
color 255, 128, 128
pos 15, 10
mes strf("%04d:%02d:%03d", a, b, c)
redraw 1
x += 1
a = x / 60000
b = x \ 60000 / 1000
c = x \ 60000 \ 1000 / 14
await 1
goto *main
stop
でどうでしょうかね
|
|
2015/1/25(Sun) 14:58:16|NO.67074
HSPで、ミリ秒単位のストップウォッチを作りたいのですが、
*main
redraw 0
color 0, 0, 0 : boxf
font msgothic, 80
color 255, 128, 128
pos 15, 10
mes strf("%04d:%02d:%03d", a, b, c)
redraw 1
x += 1
a = x / 60000
b = x \ 60000 / 1000
c = x \ 60000 \ 1000
await 1
goto *main
stop
としたのですが、どうやら1ミリ秒に1回処理をしないようです。
どうすればいいでしょうか?
|
|
2015/1/25(Sun) 14:59:05|NO.67075
この方法だとパソコンによって時間が違ってきます。
時間取得で差をとったほうがいいです。
|
|
2015/1/25(Sun) 15:00:39|NO.67077
あ14g6a5da6a
|
|
2015/1/25(Sun) 15:01:17|NO.67078
あwredsbrj12357jty46e7m
あrdspoapb
amfdobgpairgb@
rtiab@rnegam@bp
aemkhbor@a
|
|
2015/1/25(Sun) 15:01:37|NO.67079
なに
|
|
2015/1/25(Sun) 19:28:05|NO.67083
回りくどい方法かもしれないですが 精度はさておき
標準命令の gettime を使って
計測開始時点での ミリ秒+(秒*1000)+(分*60000)+(時*3600*1000) を
計測終了時点での ミリ秒(ry から引けば いちおうは出ます。
ただ、日にちをまたぐと計算がおかしくなったりしますので その時は
日*24*3600*1000 を足したりしていけば いいんじゃないですかね。
あるいはあらかじめプラグインの類を探してはいかがですか。
これで、ストップウォッチは作れます。
精度を考えるなら onkeyとか使ったり
計算式の書き方で速度を考慮してはいかがですか。
いや、プラグイン探した方が早い。
|
|
2015/1/25(Sun) 21:52:43|NO.67085
TimeGetTimeを使わず、gettimeだけで作ってみました。
//ミリ秒単位のストップウォッチ。
//左クリックでカウント開始・停止・再開
//停止中に右クリックでリセット
#define gt gettime(6)*1000+gettime(7)
font msgothic,80
time=0
stp=1 //1の場合は停止中
repeat
stick key
if key&256 {
if stp=1 {
bef=gt
stp=0
} else {
stp=1
}
}
if key&512 {
if stp=1 : time=0
}
if stp=0 { //カウント進行
now=gt
gap=now-bef : if gap<0 : gap=gap+60000
bef=now
time=time+gap
if time>5999999 : time=5999999 //カンスト
}
min = time / 60000
sec = time \ 60000 / 1000
msec = time \ 60000 \ 1000
redraw 0
color 0, 0, 0 : boxf
color 255, 128, 128
pos 15, 10
mes strf("%02d:%02d:%03d", min, sec, msec)
redraw 1
await 1
loop
|
|
2015/1/25(Sun) 22:14:19|NO.67086
>>TimeGetTimeを使わず、gettimeだけで作ってみました。
確かに0切ったときは 数字足せばいいですよね・・・
無駄な読み込みで重くしてましたな・・・
|
|
2015/1/26(Mon) 17:57:29|NO.67098
沢渡
を Ver 1.0 から Ver 1.1
にアップグレードいたしました。
//ミリ秒単位のストップウォッチ。
//左クリックでカウント開始・停止・再開
//停止中に右クリックでリセット
title "STOPWATCH"
screen 0,980,980
#define gt gettime(6)*1000+gettime(7)
// 使い方表示
//49から
font msgothic,80
time=0
stp=1 //1の場合は停止中
repeat
stick key
if key&256 {
if stp=1 {
bef=gt
stp=0
} else {
stp=1
}
}
if key&512 {
if stp=1 : time=0
}
if stp=0 { //カウント進行
now=gt
gap=now-bef : if gap<0 : gap=gap+60000
bef=now
time=time+gap
if time>5999999 : time=5999999 //カンスト
}
min = time / 60000
sec = time \ 60000 / 1000
msec = time \ 60000 \ 1000
redraw 0
color 255, 255, 255 : boxf
color 255, 128, 128
pos 15, 10
mes strf("%02d:%02d:%03d", min, sec, msec)
redraw 1
await 1
loop
少しだけ変わりました(笑)
|
|
2015/1/26(Mon) 18:02:13|NO.67099
変えてみて、
*main
redraw 0
color 0, 0, 0 : boxf
font msgothic, 80
color 255, 128, 128
pos 15, 10
mes strf("%04d:%02d:%03d", a, b, c)
redraw 1
x += 8
a = x / 60000
b = x \ 60000 / 1000
c = x \ 60000 \ 1000 / 14
await 1
goto *main
stop
になりました。
|
|
2015/1/27(Tue) 18:19:35|NO.67125
これ
*main
redraw 0
color 0, 0, 0 : boxf
font msgothic, 80
color 255, 128, 128
pos 15, 10
mes strf("%04d:%02d:%03d", a, b, c)
redraw 1
x += 8
a = x / 60000
b = x \ 60000 / 1000
c = x \ 60000 \ 1000 / 1
await 1
goto *main
stop
000の
>0<0 0
がうごきました。
|
|
2015/1/27(Tue) 18:22:28|NO.67126
めんどいのであおくしません。
*main
redraw 0
color 0, 0, 0 : boxf
font msgothic, 80
color 255, 128, 128
pos 15, 10
mes strf("%04d:%02d:%03d", a, b, c)
redraw 1
x += 8
a = x / 60000
b = x \ 60000 / 1000
c = x \ 60000 \ 10 / 1
await 1
goto *main
stop
|
|