现在我遇到一个问题,一个班级'值被重置我不知道在哪里。有人可以帮忙吗?这是代码
while True:
#some code#
Hub().paint(gameDisplay)
Hub / paint功能如下所示
def paint(self, screen):
if self.gimseen == 0 and self.pressed == 0:
screen.blit(image1, (self.x, self.y))
self.pressed = (pygame.mouse.get_pressed()[0])
if self.pressed == 1:
self.gimseen += 1
在某些代码中,我调用了一个函数,我也用它来获取self.pressed的值除了在while循环上面添加一行表示hub = hub()之外还有其他任何方法吗?
答案 0 :(得分:2)
您的变量重置的原因是因为每次while循环循环时都会创建Hub()
的全新实例。这意味着每次调用paint()
时,您使用前一个Hub()
实例的状态都将丢失。相反,您需要在while循环之外创建一个Hub()
类的实例,然后在paint()
的一个实例上调用循环内的方法Hub()
:
# only create one instance of hub.
hub = Hub()
# create you loop.
while True:
# call the method paint on the
# the one instance of Hub(); hub.
hub.paint()