count = 0
timer = Thread.new {
while count < 5
count += 1
sleep 1
end
$my_flag = true
}
这个是 5 秒后把 $my_flag 变为真,并行事件判断就行了
以下引用紫苏于2009-4-8 9:28:57的发言:
这个用默认的计时器确实不合适,因为这厮是靠刷新帧数算的,窗口失去焦点后就停了
必须要高精度吗?只需要精确到秒的话,启动一个线程就足够了~
(事件脚本中也可以启动)
count = 0
timer = Thread.new {
while count < 5
count += 1
sleep 1
end
$my_flag = true
Thread.kill(timer)
}
这个是 5 秒后把 $my_flag 变为真,并行事件判断就行了
以下引用tommay于2009-4-8 9:52:21的发言:
我有一个疑问,用计时器的话需要实现对BGM的持续时间有一个确定值,这个具体怎么办?按我的理解,当BGM播放过一遍之后返回一个值,不就可以实现控制了?但是找了半天,没找到BGM的播放控制相关脚本……
以下引用紫苏于2009-4-8 11:01:30的发言:
如果是 mp3 格式的话,可以直接从文件属性中获取持续时间…… mid 么……因为 RGSS 的 Audio 模块是异步播放的,开始播放后就继续执行程序了,所以不知道什么时候返回,除非能获取音频数据的缓冲区,判断缓冲区指针之后是否没有数据了,就知道播放完毕了~
目前只想到用 API ,新建一个线程,同步播放音频,这样就可以在音频播放完之后执行收尾操作了~
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |