Ruby解释器在:key_down崩溃

时间:2019-04-10 16:00:48

标签: ruby windows ruby2d

我一般不熟悉ruby和编程,我使用的是称为ruby2D的gem。 我试图让一个多维数据集跳转,但是当我按下跳转键时,我的解释器崩溃了,没有说任何错误

我在确定问题时遇到了问题,但是我尝试了while而不是直到它都尝试不了

on :key_down do |jump|
 if jump.key == 'j'
  if player.y == 520
   gravity = -15
   player.y = 510
   until player.y == 520
    player.y += gravity
    gravity += 1
   end
  end
 end
end 

我希望我的立方体跳起来,然后再次摔倒,但我只是崩溃

1 个答案:

答案 0 :(得分:0)

在Ruby2D中,您必须使用tick来制作动画。

该窗口还管理更新循环,这是您在编程中遇到的少数几个错误循环之一,这并不是一个错误。每个窗口都有一个心跳,一个每秒运行60次的循环,或者与计算机性能所允许的接近。使用update方法,我们可以进入此循环并使窗口栩栩如生!

尝试这样的事情:

require 'ruby2d'

set title: 'squares'
set background: 'blue'
set width: 1280
set height: 720
set borderless: true

on_air = false 
tick = 0


ground = Rectangle.new(
 x: 0, y: 620,
 width: 1280, height: 100,
 color: 'green'
)

player = Square.new(
 x: 100, y: 520,
 size: 100,
 color: ['red', 'purple', 'fuchsia', 'maroon']
)

on :key_down do |jump|
 if jump.key == 'j'
  player.y -= 50
  on_air = true
 end
end

update do
  if on_air
   if tick % 1 == 0
     player.y += 5
     if (player.y + player.size) == ground.y
      on_air = false
     end     
   end
  end

  tick += 1
end

show