Ruby - 变量内部线程?

时间:2014-12-14 01:05:23

标签: ruby libgosu

我有这段代码:

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

0 个答案:

没有答案