Project1

标题: 数组显示 [打印本页]

作者: Hjdie    时间: 2010-12-15 13:46
标题: 数组显示
本帖最后由 Hjdie 于 2010-12-15 14:59 编辑

我想每走3步,然后变量-1。。
https://rpg.blue/forum.php?mod=attachment&aid=Mzk1OTJ8MzQwY2MxZjg1MTA1NDlkNmYwNjcwZjMzMzQyNzdiNmN8MTc0NDAzMzA1Ng%3D%3D&request=yes&_f=.rar
自己做的工程。
- -。走了3步后,变量会狂减。。。

并行处理-事件1
步数影响=步数
步数影响%=3
分歧 步数影响==0
变量1-=1

并行处理-事件2
分歧 变量1<=0
游戏结束

这里的问题是,默认一开始步数是0。。然后一开始会狂减。。。然后游戏结束。。。
作者: 精灵使者    时间: 2010-12-15 14:11
八成是判断应该出问题了(减去变量以后应该恢复开关的状态而你却没有恢复,而导致了反复执行)
作者: EngShun    时间: 2010-12-15 14:23
  1. 变量 -= 1 if 步数 % 3 == 0
复制代码
轻松解决


EngShun于2010-12-15 14:57补充以下内容:
  1. 变量 -= 1 if 步数 % 3 == 0 and $game_player.moving?
复制代码
这个呢?
作者: 精灵使者    时间: 2010-12-15 15:01
本帖最后由 精灵使者 于 2010-12-15 15:24 编辑

解决方案在此
Simple_World_edit_by_fay.rar (189.62 KB, 下载次数: 32)
里面除了使用求余之外,还分别考虑了好几种情形。
事件求余了以后,然后使用双变量相等法判断是否执行完毕(这个和计时器的核心思想类似)


精灵使者于2010-12-15 15:22补充以下内容:
步数改变的时候,满足条件,则开始执行,执行完毕以后将步数记忆等于步数(参考后面的事件页条件分歧),然后回到并行事件那里,他们相等了不符合条件则不再执行,直到下次步数开始改变为止再开始判断
这是著名的计时器陷阱技术
作者: fux2    时间: 2010-12-15 16:51
直接变量操作,带入步数,除以3不行么?
作者: Wind2010    时间: 2010-12-15 18:16
直接在Game_Player的增加步数里修改……
if $game_party.steps % 3 == 0
  变量-1
  if 变量==0
    $scene = Scene_Gameover.new
  end
end

作者: enghao_lim    时间: 2010-12-15 22:03
变量-=1 if 步数 >0 and 步数%3 == 0

(=_=)
作者: 精灵使者    时间: 2010-12-16 09:48
上面的几位仅仅解决了触发条件。但是没有考虑触发以后只执行一次的可能性(条件在没有移动的情形下会一直成立)
作者: 后知后觉    时间: 2010-12-16 18:45
  1. if a != step / 3
  2.   a = step / 3
  3.   b -= 1
  4. end
复制代码


后知后觉于2010-12-17 00:40补充以下内容:
如果a的初始值是0的话.那这样就可以了.如果a的初始值不是0的话.给step加个判断就好了.


后知后觉于2010-12-17 00:43补充以下内容:
话说点评自己的帖子.内容怎么跑到上面(这里)去了= =.




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