Project1

标题: 怎么设置几秒内走了多少步触发事件 [打印本页]

作者: 光头爷爷    时间: 2016-9-2 00:21
标题: 怎么设置几秒内走了多少步触发事件
比如25秒内走完10步触发事件
作者: 光头爷爷    时间: 2016-9-2 00:28
萨俄各国 个供热管

QJ3MO4(Q`MI5P[[email protected] (30.31 KB, 下载次数: 29)

QJ3MO4(Q`MI5P[O@1L82Y.png

作者: 玄天    时间: 2016-9-2 01:28
本帖最后由 玄天 于 2016-9-2 09:19 编辑

设定定时器为你要的时间。同时设定一个开关。

建立一个『并行处理』的事件,触发条件为上述的开关ON。内容如下:
◆代入步数到变量A
◆条件分歧:计数器 = 0
  开关OFF(关闭事件)
◆否则:
    ◆条件分歧:若变量A = (你规定的数值)
     (执行内容)
      (最后设置上述开关为OFF)


『并行处理』的意思就是他会不断重复事件内容,但是期间玩家可以自由活动。这样就相当于一个无形的判断机制在不断获取当前的数值,一旦符合条件就执行。最后记得把开关关掉来让『并行处理』结束,这样一来不会出现重复取值的问题,而来也能释放后台的处理资源(尽管通常而言都很少)

——————————————————

进阶但相对复杂的做法。
计时器是个好东西,但是在不动插件的情况下,通常你只能用一个计时器。如果在已经用了计时器的情况下要实现这个功能就很没辙了,所以还有另外一种思路来实现。

简单来说,就是利用『并行处理』不断刷新的原理来确定时间。

首先同样是『并行处理』事件,同样设定一个让这个事件启动的开关。
然后事件内容如下:

◆等待:60帧
◆代入步数到变量A
◆变量B + 1
◆条件分歧:变量B < 10
    ◆条件分歧:若变量A = (你规定的数值)
     (执行内容)
◆否则:
  开关OFF


由于『并行处理』的重复执行速度在没有需要等待的情况下是非常快的,大概就是1帧1次(是不是这个数值我不知道,目测大概是这样),所以让他等待60帧(也就是1秒)执行一次内容,这样这个变量B就等于了计时器(标量)的作用。

标红的地方表示当变量B还不满你的最大值时可以进行步数检测,一旦超过设定值就自动关闭整个事件,相当于计时器结束。
值得注意的是这里的条件分歧记得要用<10,因为条件分歧里还有个相似的<=(小于等于),在这个情况下要是用了<=那就要刷11次才会触发停止,因为『小于等于』的意思就是包含10本身,要多算一次。光<的话则表示10以下但不包括10本身,也就是说一到达10就触发。

实际上你反过来用『变量B - 1,条件分歧:变量B = 0』来作为判断也是可以的,但是必须要在整个计算开始的时候给变量取值,可能比较麻烦,一旦不小心忘记就会失效。因为默认变量是0,在不取值的情况下只会变成负数。

最后你要用的时候只要把开关ON就行了。
作者: 光头爷爷    时间: 2016-9-2 10:00
玄天 发表于 2016-9-2 01:28
设定定时器为你要的时间。同时设定一个开关。

建立一个『并行处理』的事件,触发条件为上述的开关ON。内容 ...

谢谢你,中午回去试




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