查看: 4376|回复: 12

[已经解决] 是设置问题吗?用事件做一个油灯但无法正常关灯。

[复制链接]
梦石
0
星屑
102
在线时间
39 小时
注册时间
2018-4-5
回帖
11
发表于 2018-4-5 18:25:35 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
请前辈指教一下原因!





1.png

2.png

3.png


应该不需要发工程吧…?
………问题出在哪里呢?


这一张是光环图片

这一张是光环图片
新人,求前辈们多指教> <

守序伪善.png,难~攻~不~落~~……咦?
梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
回帖
1074
发表于 2018-4-5 18:57:00 | 显示全部楼层
公共事件2请设置为并行处理。
不然正常条件之下不调用的话是无法自动自行的...
公共事件1无需设置为并行处理。

评分

参与人数 1赞 +1 收起 理由
崭翼 + 1 塞糖

查看全部评分

一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复

使用道具 举报

梦石
0
星屑
7230
在线时间
1685 小时
注册时间
2017-4-28
回帖
84

开拓者

发表于 2018-4-5 19:08:22 | 显示全部楼层
公共事件2,开关操作跟消除图片之间等数帧试试
確保公共事件1是真的不在运作中。

评分

参与人数 2赞 +2 收起 理由
崭翼 + 1 认可答案
刀光渴 + 1 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
102
在线时间
39 小时
注册时间
2018-4-5
回帖
11
 楼主| 发表于 2018-4-5 19:21:06 | 显示全部楼层
文雅夕露 发表于 2018-4-5 18:57
公共事件2请设置为并行处理。
不然正常条件之下不调用的话是无法自动自行的...
公共事件1无需设置为并行处 ...

谢谢0 0
不过事件1不并行的话似乎会走得很慢……事件2并行啊……思考

点评

并行处理就是每帧数判断图片位置,用多了画面会有些卡顿,自己考虑需要用不吧...  发表于 2018-4-5 19:35
新人,求前辈们多指教> <

守序伪善.png,难~攻~不~落~~……咦?
回复

使用道具 举报

梦石
0
星屑
102
在线时间
39 小时
注册时间
2018-4-5
回帖
11
 楼主| 发表于 2018-4-5 19:34:52 | 显示全部楼层
gforce 发表于 2018-4-5 19:08
公共事件2,开关操作跟消除图片之间等数帧试试
確保公共事件1是真的不在运作中。 ...

……没有办法的连帖……
谢谢前辈。
做事件时不知道应该在哪里添加等待帧…
新人,求前辈们多指教> <

守序伪善.png,难~攻~不~落~~……咦?
回复

使用道具 举报

梦石
1
星屑
4061
在线时间
443 小时
注册时间
2018-4-1
回帖
100
发表于 2018-4-5 20:03:19 | 显示全部楼层
崭翼 发表于 2018-4-5 19:34
……没有办法的连帖……
谢谢前辈。
做事件时不知道应该在哪里添加等待帧… ...

实在找不出错误的话,可以在每个地方加一句文本,看看文本是否输出就行了
过于流畅也是影响游戏体验的,适当的等待还是必要的

评分

参与人数 1赞 +1 收起 理由
崭翼 + 1 我很赞同

查看全部评分

梦想世界,在我手中。
回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2018-4-5 22:55:42 | 显示全部楼层
在事件1最后加个 如果开关21被关闭,就消除图片1
并行公共事件的执行时机很迷幻。并不是条件不满足就立刻停止,有可能会多执行一次
回复

使用道具 举报

梦石
0
星屑
102
在线时间
39 小时
注册时间
2018-4-5
回帖
11
 楼主| 发表于 2018-4-6 00:20:11 | 显示全部楼层
本帖最后由 崭翼 于 2018-4-6 16:44 编辑
百里_飞柳 发表于 2018-4-5 22:55
在事件1最后加个 如果开关21被关闭,就消除图片1
并行公共事件的执行时机很迷幻。并不是条件不满足就立刻停 ...


是的……这也是让人困惑的问题,不符合条件以后并行公共事件是怎样地停止……
不过按鹰大所说在事件1后面加分支好像也无效了…因为开关关闭的话大概就不再往下执行……
新人,求前辈们多指教> <

守序伪善.png,难~攻~不~落~~……咦?
回复

使用道具 举报

梦石
1
星屑
22083
在线时间
4885 小时
注册时间
2014-12-22
回帖
1509

开拓者

发表于 2018-4-6 04:17:59 | 显示全部楼层
本帖最后由 shencao 于 2018-4-6 04:42 编辑

你在【002 开灯】最后加个“等待1帧”就可以了。
等待1帧效果就是之前的命令执行完毕,停1帧,再执行之后的。
这里我加在最后是想确保开灯事件一次执行完,放在消除图片1后应该也可以吧,放在关闭开关后大概也可以(后两种情况我没测试)。
rm事件执行顺序有点迷的,并行可能不知道哪里的几行命令在同时执行,并不懂。如果发生了奇怪的bug可以加上试试,反正1帧肉眼也分辨不出。

另外如果是按照我自己的思路,事件我会这么写:
【油灯光】get玩家坐标,移动图片(移动时间1帧,等待移动结束/不等待移动结束我测试的时候都OK)
【开灯】如果开关开启:消除图片,关闭开关;否则:get玩家坐标,显示图片,开启开关。
功能分开就不会出现一个事件消除图片另一个事件显示图片两个事件打架的情况了,(效果大概没差)供参考啦~

评分

参与人数 1赞 +1 收起 理由
崭翼 + 1 移动图片而不是显示,大大好方法,学到了.

查看全部评分

回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2018-4-6 10:31:30 | 显示全部楼层
本帖最后由 百里_飞柳 于 2018-4-6 10:43 编辑

那真的是很神秘的bug了
按照你的事件编写,触发物品效果(关灯)前后的脚本逻辑是:
第一帧(使用物品前,依旧在地图中):是否需要刷新普通事件、并行公共事件的当前激活状态(否)→预定调用的公共事件更新一帧(无)→普通事件全部更新一帧(忽略)→在上一帧判定为激活(满足了触发条件)的并行公共事件按照序号依次更新一帧(更新灯光公共事件)
第二帧(使用物品后,从菜单返回地图):是否需要刷新事件激活状态(否)→预定调用的公共事件更新一帧(关灯公共事件启动,因为其中无挂起指令(如等待n帧),可直接更新完;开关关闭,预定下一帧需要刷新事件激活状态;但本事件的解释器要到下一帧时才会被清除,因此原本此处也有的刷新事件激活状态也被跳过※)→普通事件更新(忽略)→公共事件更新(还未被刷新激活状态,公共事件仍然被调用了一次,此时图片又显示出来)
※ 原因解释
  1. class Game_Interpreter
  2.   #--------------------------------------------------------------------------
  3.   # ● 执行
  4.   #--------------------------------------------------------------------------
  5.   def run
  6.     wait_for_message
  7.     while @list[@index] do
  8.       execute_command
  9.       @index += 1
  10.     end
  11.     Fiber.yield # 此处使得事件结束时不会自己清除,而需要等待到下一帧再刷新时清除(原因:使自动执行的事件能够挂起玩家的移动更新等)
  12.     @fiber = nil
  13.   end
  14. end
复制代码

第三帧:是否需要刷新事件激活状态(是,直接删去不满足条件的公共事件的更新)→预定公共事件的更新(无)→普通事件全部更新一帧(忽略)→并行公共事件按照序号更新一帧(无)

推了很多次都是这样的结果,你可以试试在第一个公共事件的首行or末行增加 等待1帧,错开它们更新的时机?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部