目次
前
次
シミュレータ拡張
Tcl/Tkでは、10msごとにタスクが指定したカウント値を−1します。
時間を扱うときには、「after」あるいは「clock」を利用して
時間差を生成するのが定石。
「after」を使うときには、次のような手続きを使います。
proc show_event {} {
#
global ecnt eflag elast
# show
draw_hand
# handling
incr ecnt
# ? complete
if { $ecnt >= $elast } {
set eflag 0
}
#
after 1000 show_event
}
「clock」を使うときには、ms単位であれば、以下の
コードで時間差を扱います。
proc show_time {} {
#
global ecnt eflag elast beginTime currentTime
# get current time
set currentTime [clock clicks -milliseconds]
# judge
if { [expr $currentTime - $beginTime] > 999 } {
# update
set beginTime $currentTime
# show
draw_hand
# handlign
if { $eflag == 1 } {
incr ecnt
# ? complete
if { $ecnt >= $elast } {
set eflag 0
}
}
}
# 200ms
after 200 show_time
}
(under construction)
目次
前
次