我偶然发现了一个问题,我想通过连续While循环运行时增加类init方法中的变量。在运行while循环时更改方法变量
我的初始化方法创建一个矩形和我的其他方法绘制(自我)绘制到屏幕上。在While循环中,我将矩形的y位置增加7(rect1.y + = 7),然后调用draw方法将对象打印到屏幕上。 现在,问题是对象不会按预期向下移动,并且是静态的。
请注意,while循环在一个基本上每次更新屏幕的功能内,并且Class在该功能之外。我还使用它的所有属性初始化实例,并在while循环中使用该实例调用draw()方法。
对不起,如果我没有解释得很好,但我希望你们至少知道发生了什么。
有什么建议吗?
类:
class Rect():
def __init__(self, color, x, y, w, h):
self.color = color
self.x = x
self.y = y
self.w = w
self.h = h
def draw(self):
pygame.draw.rect(gameDisplay, self.color, [self.x, self.y, self.w, self.h])
while循环中的代码:
gameDisplay.fill(white)
rect1 = Rect(black, rect1_randomx, 200, 100, 100)
rect1.y += rect_speed
rect1.draw()
rect_speed = 7是功能而不是while循环!
2个独立的局部变量创建
rect1
?我们不知道,因为你没有展示足够的代码。 –