查看: 2403|回复: 2

[已经解决] 求怎么捕捉键盘持续按压

[复制链接]
梦石
0
星屑
1907
在线时间
1555 小时
注册时间
2013-4-13
回帖
783
发表于 2013-4-18 20:14:12 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 沉滞的剑 于 2013-4-19 03:42 编辑

我让一个窗口每当进行光标移动的时候刷新一次,但是当按钮持续按压的时候,窗口不刷新,直到再按一次键盘才有反应。
我想到两种方式解决,但是我不知道怎么做
1、有没有可能让持续按压只实现一次光标移动?
2、有没有可能捕捉按压状态,让处于按压状态的窗口持续更新?

我猜和这段代码有关,但是没有具体思路
[pre lang="ruby" line="1"]  def process_cursor_move
    return unless cursor_movable?
    last_index = @index
    cursor_down (Input.trigger?(:DOWN))  if Input.repeat?(:DOWN)
    cursor_up   (Input.trigger?(:UP))    if Input.repeat?(:UP)
    cursor_right(Input.trigger?(:RIGHT)) if Input.repeat?(:RIGHT)
    cursor_left (Input.trigger?(:LEFT))  if Input.repeat?(:LEFT)
    cursor_pagedown   if !handle?(:pagedown) && Input.trigger?(:R)
    cursor_pageup     if !handle?(:pageup)   && Input.trigger?(:L)
    Sound.play_cursor if @index != last_index
  end[/pre]
梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
回帖
2257

贵宾

发表于 2013-4-18 21:20:17 | 显示全部楼层
press?(key) 按键被按下返回true
trigger?(key) 按键 未被按下转变为按下 返回true
repeat?(key) 如果按键被按下,每隔几帧返回一次true

1、用trigger?(k)
2、用press?(k),另外,处于按压状态的窗口是指?

具体Symbol对应的Key参考F1帮助档吧。

评分

参与人数 1梦石 +1 收起 理由
Mic_洛洛 + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
1907
在线时间
1555 小时
注册时间
2013-4-13
回帖
783
 楼主| 发表于 2013-4-19 03:42:23 | 显示全部楼层
Sion 发表于 2013-4-18 21:20
press?(key) 按键被按下返回true
trigger?(key) 按键 未被按下转变为按下 返回true
repeat?(key) 如果按键 ...

谢了,用repeat?解决了,感谢大神。
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部