如何使用循环?

时间:2019-01-27 11:11:05

标签: ruby loops shoes

我正在用Ruby / Shoes编写一个小游戏。我正在尝试将此代码放入循环。它应该在最后一个计时器之后重复。我不知道如何开始。

@timer2= timer(20)do
  @pic.move(100,170)
end

@timer2= timer(40) do
  @pic.move(350,120)
end

@timer2= timer(60) do
  @pic.move(20,400)
end

@timer2= timer(80) do
  @pic.move(420,60)
end

2 个答案:

答案 0 :(得分:0)

只需循环您的代码即可:

loop {
  @timer2 = timer(20) do
    @pic.move(100, 170)
  end

  @timer2 = timer(40) do
    @pic.move(350, 120)
  end

  @timer2 = timer(60) do
    @pic.move(20, 400)
  end

  @timer2 = timer(80) do
    @pic.move(420, 60)
  end
}

如果需要退出循环,请使用break

答案 1 :(得分:0)

简单示例循环尝试

class Picture
  def initialize
    @last_move = {}
  end

  def move(x, y)
    @last_move = { x: x, y: y }
    puts @last_move
  end

  def self.test_movement
    @pic = new
    pic_moves = [
      { t: 2, x: 100, y: 170 },
      { t: 4, x: 350, y: 120 },
      { t: 6, x: 20, y: 400 },
      { t: 3, x: 420, y: 60 }
    ]
    pic_moves.each do |pm|
      sleep(pm[:t])
      puts(pm[:t])
      @pic.move(pm[:x], pm[:y])
    end
  end
end

Picture.test_movement