Ruby Gosu#更新中的递归数学函数

Ruby Gosu#更新中的递归数学函数,ruby,math,graphics,libgosu,Ruby,Math,Graphics,Libgosu,是否有一种方法可以在Gosu中连续添加(或连续执行任何数学函数)。更新每秒调用60次。因此,给定以下代码: x = 0 x += 1 p x 我预计将持续产出: => 1 => 2 => 3 => 4 # etc. 相反,我得到了 => 1 => 1 => 1 => 1 # etc. 有人能解释为什么会发生这种情况吗?有没有办法得到我预期的结果 非常感谢 您正在将每个循环上的x变量重新指定为0。将代码更改为: x ||= 0 x += 1

是否有一种方法可以在Gosu中连续添加(或连续执行任何数学函数)。更新每秒调用60次。因此,给定以下代码:

x = 0
x += 1
p x
我预计将持续产出:

=> 1
=> 2
=> 3
=> 4
# etc. 
相反,我得到了

=> 1
=> 1
=> 1
=> 1
# etc.
有人能解释为什么会发生这种情况吗?有没有办法得到我预期的结果


非常感谢

您正在将每个循环上的
x
变量重新指定为0。将代码更改为:

x ||= 0
x += 1
p x
你会得到你想要的结果


第一行的意思是,如果x有一个值,什么也不做,如果它是nil,则将其赋值为0。

Hmm…我肯定应该抓住它。这应该能解决问题,但事实并非如此。我得到了同样的结果。有趣的是,如果我将x作为一个实例变量,并在initialize中赋值,然后使用@x+=1,这就行了。有什么想法吗?我能看看循环中涉及的所有代码吗?不要认为我有足够的时间继续进行要求'gosu'类测试false self.caption=“Test”@x=0 end def update y | | | y+=1 puts“y={y}”@x+=1 puts“x={@x}”end-end-end-Test new.show