设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2413|回复: 2

[已经解决] 为什么在做ARPG时技能会重复施放

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
491 小时
注册时间
2012-1-27
帖子
421

整合系统大赛RMVA达人

发表于 2013-7-15 12:35:31 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 狱冥幻翼 于 2013-7-15 14:12 编辑

比如说我在某技能的动画显示时按了下施放该技能的键,那么这个技能释放完成后会再施放一次,在释放期间禁用inputupdate还是这样
代码
  1. class Game_Interpreter
  2.   def before_attack
  3.     $game_switches[104] = true
  4.   end
  5.   def after_attack
  6.     $game_switches[104] = false
  7.   end
  8.   def skillA
  9.     before_attack
  10.     character = get_character(-1)
  11.     character.animation_id = 488
  12.     Fiber.yield
  13.     after_attack
  14.   end
  15. end
  16. class Scene_Base
  17.   def update_basic
  18.     Graphics.update
  19.     if $game_switches[104] == false
  20.       Input.update
  21.     end
  22.     update_all_windows
  23.   end
  24. end
复制代码

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

发表于 2013-7-15 13:07:17 | 显示全部楼层
本帖最后由 Sion 于 2013-7-15 13:19 编辑

问题应该在Fiber.yield,一个Fiber.yield只能延迟1帧。
这样
  1. Fiber.yield unitl character.animation_id == 0
复制代码
不过,
我感觉这种处理可能会导致很多问题。
正确的做法应该以技能是否在释放中为条件,来判断是否响应输入。

评分

参与人数 1星屑 +45 收起 理由
狱冥幻翼 + 45 感谢!!

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
491 小时
注册时间
2012-1-27
帖子
421

整合系统大赛RMVA达人

 楼主| 发表于 2013-7-17 13:53:50 | 显示全部楼层
Sion 发表于 2013-7-15 13:07
问题应该在Fiber.yield,一个Fiber.yield只能延迟1帧。
这样不过,
我感觉这种处理可能会导致很多问题。

再请教下,显示动画的代码我是直接复制的不等待结束的command_212,在帮助档中查了下Fiber.yield,说是  “将环境切换到它的母线程。”   没看懂……而且我发现就算把这句删了,貌似也没什么影响,大神能否解释下Fiber.yield有什么用,我刚学代码,刚把最简单的Scene类看了一遍,还不怎么懂~
还有“正确的做法应该以技能是否在释放中为条件,来判断是否响应输入”我感觉读取输入的代码就是Input.update啊,为什么释放时禁用仍然不行?
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 13:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表