为什么我的旧箱子不会消失?

时间:2014-01-22 18:32:47

标签: python pygame panes

所以我几个月前做过,提出类似的问题,但我似乎无法应用与我之前的问题相同的规则/法律。就像我的名字一样,我对Python的理解非常基础,所以我很困惑为什么他的代码不起作用......

每次我加载一个新的屏幕时,旧的一组框应该消失,新的只有新的框应该留在那里。然而,这不是发生的事情。这是用于演示的图片: enter image description here enter image description here

Link to the full code.

但是我觉得问题可能出在这部分代码中:

def deletePanes(self):

    print("delete panes")
    Panes = []
    self.NoOfPanes = 0

我还在代码的前一部分Panes = []中调用了class Application():。问题可能是我两次打电话吗?我的意思是,一个Panes列表中可能有一个旧框,一个Panes中有一个新集合,所以当它在PyGame屏幕上绘制时它会画出来新旧包装盒? (如果您查看完整代码,所有这些可能会更有意义)

感谢您提前提供任何帮助。

2 个答案:

答案 0 :(得分:2)

致电时

Panes = []

在函数内部,它会创建一个新的局部变量Panes并将其设置为空列表。

如果是全局变量,则应调用

Panes[:] = []

如果是在课堂上,你应该打电话给

self.Panes = []

答案 1 :(得分:1)

Panes是一个局部变量,不会更改您对Panes的其他用途的值。您需要生成Panes global或实例变量。在代码中引用Panes

的每个位置执行相同操作