Project1

标题: 请问各位关于脚本中如何实现同时执行 [打印本页]

作者: 965426480    时间: 2014-2-13 12:07
标题: 请问各位关于脚本中如何实现同时执行
我的意思就是类似于事件中的并行处理,在使用一个方法的时候,它就是单独的一块,同时又执行另一块,例如我用
loop do
  Graphics.update
  Input.update
  do_something
end
这时,我还想判断输入,然后执行别的内容,请问我该怎么做,可不可以达到像我说的效果,如果不可以,是不是应该把脚本合并什么的?

作者: 铃仙·优昙华院·因幡    时间: 2014-2-13 19:35
do_something 里添加输入判断不久可以了么?

真的想要用并行的话, 只能用 Ruby 的线程. 比如说 Thread 类. 不过这也不是真正意义上的 "同时"

另外也许也会有新的意外发生, 比如 同步 什么的. 使用 Thread 的话.
作者: 965426480    时间: 2014-2-13 20:25
铃仙·优昙华院·因幡 发表于 2014-2-13 19:35
do_something 里添加输入判断不久可以了么?

真的想要用并行的话, 只能用 Ruby 的线程. 比如说 Thread 类.  ...

我这个do something里是要有Graphics.wait(duration)的,这样在输入的时候,时间条会一卡一卡的,您有什么好的办法么大神,还有vx里没有关于线程的介绍,您能给个介绍和用法什么的吗
作者: 铃仙·优昙华院·因幡    时间: 2014-2-13 20:39
以及有 Graphics.update 这个了, 就没必要再使用 Graphics.wait().

Graphics.wait() 可以换一种写法, 比如说:

  1. loop do
  2.   Graphics.update
  3.   Input.update
  4.   do_something
  5.   do_wait if Graphics.frame_count % duration == 0
  6. end
复制代码
Graphics.frame_count % duration == 0 的意思, 比如说 duration = 3 . 那么在 每次经过 3 帧的时候才会去执行 do_wait 这个方法. 这就等于是 等待了 3 帧了. 主要是不妨碍其他的方法运行.
作者: 965426480    时间: 2014-2-13 21:38
铃仙·优昙华院·因幡 发表于 2014-2-13 20:39
以及有 Graphics.update 这个了, 就没必要再使用 Graphics.wait().

Graphics.wait() 可以换一种写法, 比如 ...

因为我的do_something里是要有一个内容是显示一张图片,然后过一会这张图片消失,这样里面就得用到wait,让时间停留一段时间,按照您的说法外面一层循环,那我执行里面的do_something就必须再套一层循环,这样执行里面的循环等待时间,外面的循环被迫等待,所以外侧循环所控制的效果将受到影响,除非里面循环的等待不会使得外面的循环等待,作为万千宠爱与一身的大神,您有什么好办法吗
作者: 铃仙·优昙华院·因幡    时间: 2014-2-13 21:48
万千宠爱与一身  感觉怪怪的.

loop do  这个循环是你给的范例

如果不需要的话, 可以利用 Scene_Base 里的那个 loop do 来等待.
作者: 965426480    时间: 2014-2-13 22:02
铃仙·优昙华院·因幡 发表于 2014-2-13 21:48
万千宠爱与一身  感觉怪怪的.

loop do  这个循环是你给的范例

嗯,那个好用,谢谢分享,万千宠爱于一身的女神当之无愧{:2_275:}
作者: 铃仙·优昙华院·因幡    时间: 2014-2-13 22:28
965426480 发表于 2014-2-13 22:02
嗯,那个好用,谢谢分享,万千宠爱于一身的女神当之无愧

Scene#update 其实就是 一帧 调用一次的.




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1