Project1

标题: 如何所有地图里植物都生长 [打印本页]

作者: shanlong闪龙    时间: 2014-3-10 19:40
标题: 如何所有地图里植物都生长
本帖最后由 shanlong闪龙 于 2014-3-16 09:58 编辑

就是比如说,场景甲里有一个植物,开始生长后,中途到别的场景里乱跑,怎么设置这段时间内植物也会生长?就是无论神马场景,某个场景的植物都会生长……数量比较多……所以最好别用开关弄吧……一个一个开关弄很烦的……
作者: shanlong闪龙    时间: 2014-3-11 19:02
没人会吗?我用的是公共事件并行处理……
作者: shanlong闪龙    时间: 2014-3-12 18:04
有大神会吗?{:2_271:}
作者: batfjtn    时间: 2014-3-12 18:07
公共事件~!!

自动执行~~!!

开关控制~!!

开始种植后打开开关~!

然后就自动增加成长值~~!!

下次还是希望把你做的线给出来看看~!!

没看谁知道你需要怎么样改~~!?
作者: shanlong闪龙    时间: 2014-3-12 18:34
batfjtn 发表于 2014-3-12 18:07
公共事件~!!

自动执行~~!!

用开关不合适,因为要生长的植物数量相当多,至少几百个。说不定还要上千个……难道弄上千个开关
作者: shanlong闪龙    时间: 2014-3-12 18:35
@batfjtn 你还有其他方法吗
作者: shanlong闪龙    时间: 2014-3-12 20:11
求大神{:2_271:}
作者: batfjtn    时间: 2014-3-13 01:26
本帖最后由 batfjtn 于 2014-3-13 01:30 编辑

你可以在一个开关里做条件判断啊~!!

所有植物都放在那一个开关里啊~~!!

例如:

开关ON

条件:植物1
植物存在增加XX
否则
不增加
条件:植物2
植物存在增加XX
否则
不增加
条件:植物3
植物存在增加XX
否则
不增加~~!!

条件你可以判断你种植物的地图~~!!

例如

条件分歧:地图XX
条件分歧:植物XX
如果植物存在增加XX
否则
不操作
条件结束

这个可以无限添加的啊~!!

逻辑搞定了之后你想添加多少也可以啊~!!??
作者: shanlong闪龙    时间: 2014-3-13 20:33
batfjtn 发表于 2014-3-13 01:26
你可以在一个开关里做条件判断啊~!!

所有植物都放在那一个开关里啊~~!!

我可以说……我没听懂么……求图示,谢谢谢谢谢谢谢谢,还有我只有2个阶段,一个阶段是被采摘过的,一个阶段是没被采摘过的,还有我不太想要增加成长值的,直接并行处理的等待就可以了……
作者: batfjtn    时间: 2014-3-14 01:34
我的意思是你做好的给我看看~!!

看看如何修改下就OK了~!!

让我临时给你想一个也太多要解决的问题了~~!!
作者: RyanBern    时间: 2014-3-14 13:43
本帖最后由 RyanBern 于 2014-3-14 13:44 编辑

用脚本处理可能会稍微方便一些。
先将这段脚本插入到Main之前:
  1. class Game_System
  2.   def current_time
  3.     return Graphics.frame_count / Graphics.frame_rate
  4.   end
  5.   def set_timer(event_id)
  6.     if @events_timer.nil?
  7.       @events_timer = {}
  8.     end
  9.     key = [$game_map.map_id,event_id]
  10.     @events_timer[key] = current_time
  11.   end
  12.   def compare_time(event_id)
  13.     if @events_timer.nil?
  14.       @events_timer = {}
  15.     end
  16.     key = [$game_map.map_id,event_id]
  17.     if @events_timer[key].nil?
  18.       return 0
  19.     end
  20.     return current_time - @events_timer[key]
  21.   end
  22. end
复制代码
然后制作植物的事件页:
第一页:植物未经采摘时的状态
事件出现条件:无
事件开始条件:决定键
事件内容:
脚本:$game_system.set_timer(@event_id)  #原封不动写下来就行
独立开关的操作:A = ON
第二页:植物经过采摘之后的状态
事件出现条件:独立开关 A 为 ON
事件开始条件:并行处理
事件内容:
条件分歧:脚本:$game_system.compare_time(@event_id) > 10
      独立开关的操作:A = OFF
   :分歧结束

注:事件第二页最后那个 > 10 表示延迟时间,单位是秒,即如果你希望植物经过采摘之后经过60秒就生长为未经采摘的状态,就把那个10改成60。
      这种方法能够满足要求,但是并行多了不知道会不会卡,要不行再来找我吧。
作者: shanlong闪龙    时间: 2014-3-14 21:05
batfjtn 发表于 2014-3-14 01:34
我的意思是你做好的给我看看~!!

看看如何修改下就OK了~!!

我不会发图片……那我还是说吧……
第一页是确定键后得到植物果实,然后独立开关A=ON,然后第二页是采摘后的状态,开始条件是独立开关操作A=ON,然后是并行处理的,等待999帧,然后独立开关A=OFF
作者: shanlong闪龙    时间: 2014-3-14 21:06
RyanBern 发表于 2014-3-14 13:43
用脚本处理可能会稍微方便一些。
先将这段脚本插入到Main之前:然后制作植物的事件页:
第一页:植物未经采 ...

我这个游戏里这种植物的数量相当多,最好不要卡的吧……你能确定流畅吗……
作者: RyanBern    时间: 2014-3-14 21:11
shanlong闪龙 发表于 2014-3-14 21:06
我这个游戏里这种植物的数量相当多,最好不要卡的吧……你能确定流畅吗…… ...

只要不在一个地图上放太多并行就可以,植物不在同一张地图上没有关系,因为并行这个东西本身多了就会卡,并不是这个方法有问题。如果不行的话弄个防卡脚本(只判断视野内事件刷新),或者在事件第二页的最后一行设置“暂时消除事件”。
作者: yagami    时间: 2014-3-14 21:40
植物写个类 里面有个属性成长  实例化后加入数组  在地图的update里做一件事情  遍历植物数组 把里面每个元素的 成长值增加
作者: shanlong闪龙    时间: 2014-3-15 20:33
RyanBern 发表于 2014-3-14 21:11
只要不在一个地图上放太多并行就可以,植物不在同一张地图上没有关系,因为并行这个东西本身多了就会卡, ...

嗯。但是999帧太短了,最高也只能调到999帧,这怎么办啊?
作者: shanlong闪龙    时间: 2014-3-16 09:57
RyanBern 发表于 2014-3-14 13:43
用脚本处理可能会稍微方便一些。
先将这段脚本插入到Main之前:然后制作植物的事件页:
第一页:植物未经采 ...

嗯!!谢谢!可以了!!!!!!!!求加QQ号513432352备注就说是66RPG的大神
作者: wolves    时间: 2014-3-16 16:33
话说,我有种想法,设计一个计时器,然后用计算时间差的方法来判定植物生长的多少,如果认为我这个方法米有意义请无视。




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