Project1

标题: 帮我改一下之前前辈给的几句代码 已解决 [打印本页]

作者: 飞翔的小鸟3    时间: 2017-9-30 20:44
标题: 帮我改一下之前前辈给的几句代码 已解决
本帖最后由 飞翔的小鸟3 于 2017-10-1 11:39 编辑

RUBY 代码复制
  1. @var ||= 25
  2. if Kboard.keyboard(0x41)
  3. $game_switches[@var] = true
  4. @var = (@var == 25? 26 : 25 )
  5. end
  6. #=====================
  7. @var3 ||= 27
  8. if Kboard.keyboard(0x51)
  9. $game_switches[@var3] = true
  10. @var3 = (@var3 == 27? 28 : 27 )
  11. end

解读一下,
最上面的代码,按一下A,先执行25开关,效果为举枪,然后再按一下A,执行26开关,效果为收下枪。
下面的:按一下Q,先执行27开关,效果为举刀,然后再按一下Q,执行28开关,效果为收下刀。
到这里都没问题。
然后我在他们间切换,问题来了。
如果我先举枪,这时启动了27开关,按理来说,接下来应该按一下A再执行28开关,收下枪,
可是,我在这时举起了刀(按Q),我想大家都猜到了我的脚本是27开关执行完,如果在按一次执行26开关,所以我再一次切换到枪,出现的是收下枪的动画,并不是举枪。然后再按一次Q,出现的是收下刀的



动画,并不是举刀。
怎么做可以让我在举枪后举刀时,下一次按下举枪,var被初始化,实现的是举枪的动作而不是收下枪呢?
反之,让我在举刀后举枪时,下一次按下举刀,var3被初始化,实现的是举刀的动作而不是收下刀,也是我要问的。

在来解释一下,比如
最上面代码,按一下A执行a(举枪),在按一下A接下来必定执行b(下枪)。也就是说,你按了一次A,他执行a,如果你在按一次A,接下来他只能执行b,这是代码规定的,代码就是这样子写的。顺序是a=>b=>a=>b=>a,无限循环。
最下面代码,按一下Q执行c(举刀),再按一下Q接下来必定执行d(下刀)
如果我先按A,执行了a,再按Q,执行了c,这时,我如果又按了A,因为前面已经按过一次A并且已经执行过a了,所以接下来就是只能执行执行b。然后因为前面按过Q,如果我在按一次Q,那么只能执行d,懂了吗?


作者: gforce    时间: 2017-9-30 21:32
本帖最后由 gforce 于 2017-10-1 00:50 编辑

的確有點晕
改用變量紀錄你正在使用的武器?
例如:  無武器---0,   槍----1,     刀----2
  1. if Kboard.keyboard(0x41)

  2.     $game_variables[3] == 1? $game_temp.reserve_common_event(3) : $game_temp.reserve_common_event(1)
  3.     end
复制代码


公共事件3: 下枪动画,  設定變數3為0,   觸發條件: none
公共事件1:    举枪动画,  設定變數3為1,    觸發條件: none
#====================
建立一個新工程,將data文件覆蓋上去,再重新加入你自己的素材,你看看是不是你要的效果。

Data.rar

206.06 KB, 下载次数: 57






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