我有这段代码:
def initialize
t1 = Thread.new{frameupdate}
end
def frameupdate
while @moving
unless @frame >=4
sleep(0.1)
@frame += 1
else
@frame = 0
end
end
end
所以@frame是我想要的帧,它应该从0添加到最大4,然后设置回0并再次上升到4。但由于某些原因,它不会这样做,因为@moving是假的,但是当我按下按钮(W,A,S,D)时,我将@moving设置为true。我用简单的看法证明了这一点。
编辑:原因是@moving首先设置为false,所以while @moving中止,所以我只是将代码更新为:
def frameupdate
while true
while @moving
unless @frame >=4
sleep(0.1)
@frame += 1
else
@frame = 0
end
end
end
end