Ruby Gosu,按键时如何检测?

Ruby Gosu,按键时如何检测?,ruby,libgosu,Ruby,Libgosu,当玩家按下左光标或右光标时,我想左右移动我的角色 按下按键时,如何在Gosu中的更新功能中进行检测?有两种方法可以检测按键何时按下 使用事件侦听器 如果在窗口具有焦点时按下按钮,则在“更新”之前调用此方法 理想情况下,当您只想在按钮从释放到按下的瞬间触发某个事件(射击、跳跃等) 检查此帧中的按钮是否已按下 返回当前是否按下按钮id 理想情况下,当您想继续做某事时,按键仍然按下(移动,…) 以下是包含两个系统的代码: class MyGame < Gosu::Window

当玩家按下左光标或右光标时,我想左右移动我的角色


按下按键时,如何在Gosu中的
更新
功能中进行检测?

有两种方法可以检测按键何时按下

使用事件侦听器
如果在窗口具有焦点时按下按钮,则在“更新”之前调用此方法

理想情况下,当您只想在按钮从释放到按下的瞬间触发某个事件(射击、跳跃等)

检查此帧中的按钮是否已按下
返回当前是否按下按钮
id

理想情况下,当您想继续做某事时,按键仍然按下(移动,…)


以下是包含两个系统的代码:

class MyGame < Gosu::Window
  def initialize
    @x = 100
    @y = 100
    @velocity = 3
  end

  def button_down(button_id)
    case button_id
    when Gosu::KB_ESCAPE
      close
    when Gosu::KB_SPACE
      shoot
    else
      super
    end
  end

  def update
    move_left if Gosu.button_down? Gosu::KB_LEFT
    move_right if Gosu.button_down? Gosu::KB_RIGHT
    move_up if Gosu.button_down? Gosu::KB_UP
    move_down if Gosu.button_down? Gosu::KB_DOWN
  end

  def shoot
    puts "Shoot!"
  end
  
  def move_left
    @x -= @velocity
  end
  
  def move_right
    @x += @velocity
  end
  
  def move_up
    @y -= @velocity
  end
  
  def move_down
    @y += @velocity
  end
end
class MyGame

Gosu.按钮按下?(Gosu:)
这是你的工作清单

Gosu.button_down?(Gosu::<BUTTON>)