我正在使用python和tkinter进行比赛。到目前为止,它有很好的发展,就像我有运动,射击......很好的拍摄。我能够创造子弹并将其移向我想要的方向。但是,我想在他们离开屏幕时将其删除。这是我遇到麻烦的部分。下面是我拍摄的代码(这势必鼠标左键)和我的移动代码:Tkinter游戏:删除实例
def shoot(self,e):
theplayer=self.find_withtag("player")
bullet=self.create_image([self.coords(theplayer)],image=self.playerUp,tag="bullet")
self.bullets.append(bullet)
def movebullet(self):
for bullet in self.bullets:
x1,x2,y1,y2=self.bbox(bullet)
if x1>1200:
self.move(bullet,14,0)
else:
self.delete(bullet)
我以为删除代码的工作,但它给了我一个错误,指出: “X1,X2, y1,y2 = self.bbox(bullet)TypeError:'NoneType'对象不可迭代“
我不确定这是什么意思,并且拍摄实际上不适用于此。不过,它在我尝试删除子弹之前就起作用了。我真的很感激任何人的帮助。 谢谢
您确定要x1> 1200而不是x1 <1200吗?我想你会希望子弹在仍然在屏幕上时移动。现在看起来你一旦被触发就会删除每一颗子弹。 – ecline6
woops good catch。现在他们实际上移动了,但是当他们达到1200时,我得到和以前一样的错误 –
我认为jwygralak的答案在下面是对于NoneType – ecline6