查看: 2565|回复: 7

如何判断按键的按下而不按住

  [复制链接]
梦石
0
星屑
65
在线时间
433 小时
注册时间
2007-5-1
回帖
949
发表于 2009-3-29 23:33:34 | 显示全部楼层 |阅读模式

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

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

×
呃……本意是想做一个蓄力攻击,按下C键攻击,按住C键蓄力,因此写了这样的脚本:
if Input.trigger?(Input::C)
  攻击
elsif Input.press?(Input::C)
  蓄力
end

但是这样有一个问题,就是每次蓄力前都要先攻击一次,因此我就改成:

count = 0       # 在别的地方赋初值,只执行一次
if Input.press?(Input::C)               
  count += 1                               # 计算按住C键的时间
  蓄力 if count > 10
elsif !Input.press?(Input::C)              # 放下C键时
  if count <= 10                           # 按住时间低于10就攻击
    攻击
  else
    畜力效果                           
  end
  count = 0
end
  
但是这样有个问题,就是!Input.press?在放开键后才判断为true,而Input.trigger?在按下时就判断为true,因此第二种方案的攻击与第一种方案相比有明显的滞后性,现在没想出更好的办法,因此来请教各位。

PS:不知道Input.repeat?的效果,可能用上这个么?

嗯,不能浪费签名了,打广告。本人的悲剧作品:
坑化游戏《龙之影》      R剧《星空》     小游戏《剑与拳头》

八云紫的式神<

梦石
0
星屑
828
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

发表于 2009-3-30 01:02:52 | 显示全部楼层
以下引用水镜风生于2009-3-29 15:33:34的发言:
但是这样有个问题,就是!Input.press?在放开键后才判断为true,而Input.trigger?在按下时就判断为true,因此第二种方案的攻击与第一种方案相比有明显的滞后性

一定会这样的,因为在10帧的时间之内,根本无法判断玩家是要攻击还是要蓄力
(从逻辑的角度想一想)
所以只能等10帧过后,如果松开了就判定为攻击,否则判定为蓄力
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

天仙

梦石
0
星屑
720
在线时间
184 小时
注册时间
2008-4-15
回帖
4872

贵宾

发表于 2009-3-31 13:38:35 | 显示全部楼层
试试看把条件反过来:

if Input.press?(Input::C)
蓄力
elsif Input.trigger?(Input::C)
攻击
end



系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
回帖
1385
发表于 2009-4-2 07:38:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
828
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

发表于 2009-4-4 18:40:16 | 显示全部楼层
像这种即时性这么强的东西最好别用trigger或者repeat吧,感觉纯press?()比较好,帧数好控制一些
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

梦石
0
星屑
65
在线时间
433 小时
注册时间
2007-5-1
回帖
949
 楼主| 发表于 2009-4-5 05:15:43 | 显示全部楼层
仔细一想,好像真的不可能实现,因为按下C键的时间是不确定的。
(按一下然后立即放开,看上去是很短的时间,实际上却是已经持续了4~20帧左右)

没办法,只好换一种模式,还是谢谢各位了。

嗯,不能浪费签名了,打广告。本人的悲剧作品:
坑化游戏《龙之影》      R剧《星空》     小游戏《剑与拳头》
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
828
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

发表于 2009-4-5 05:16:56 | 显示全部楼层
其实我已经练成了按一帧某键的本领
(PIA飞)

可以这样,无论按键长短,都视为蓄力,松开的时候攻击
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2009-4-5 06:08:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部