0

我是 ruby​​ 和一般编程的新手,我正在使用一个名为 ruby​​2D 的 gem。我试图让一个立方体跳跃,但是当我按下我的跳跃键时,我的解释器只是崩溃而没有说任何错误

我在实际识别问题时遇到了问题,但是我尝试使用 while 而不是 until 并且这似乎也不起作用

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 

我希望我的立方体跳起来,然后又掉下来,但我只是崩溃了

4

1 回答 1

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
于 2019-06-07T14:10:28.600 回答