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

Project1

 找回密码
 注册会员
搜索
查看: 2244|回复: 7
打印 上一主题 下一主题

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

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
65
在线时间
433 小时
注册时间
2007-5-1
帖子
993
跳转到指定楼层
1
发表于 2009-3-29 23:33:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
呃……本意是想做一个蓄力攻击,按下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剧《星空》     小游戏《剑与拳头》

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

2
发表于 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上
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

3
发表于 2009-3-31 13:38:35 | 只看该作者
试试看把条件反过来:

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



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

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
4
发表于 2009-4-2 07:38:20 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

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

使用道具 举报

Lv1.梦旅人

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

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

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

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

7
发表于 2009-4-5 05:16:56 | 只看该作者
其实我已经练成了按一帧某键的本领
(PIA飞)

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

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

8
发表于 2009-4-5 06:08:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 21:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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