我正在用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
只需循环你的代码:
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
。
尝试
循环计时器的简单示例
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