나는 python과 tkinter를 사용하여 경쟁 게임을 진행하고 있습니다. 지금까지, 나는 움직임이 있고, 총격을 가할 때 멋지게 나옵니다. 나는 총알을 만들고 내가 원하는 방향으로 움직일 수있다. 그러나 화면에서 사라질 때 삭제하고 싶습니다. 그게 제가 곤란을 겪고있는 부분입니다. 아래 (왼쪽 마우스 버튼에 바인딩) 내 촬영 코드와 내 이동 코드 :Tkinter game : 인스턴스 삭제
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 (글 머리표) TypeError : 'NoneType'개체를 반복 할 수 없습니다. "
나는 이것이 무엇을 의미하는지 확실하지 않으며 촬영이 실제로 작동하지 않습니다. 그러나 총알을 삭제하기 전에 효과가있었습니다. 나는 누군가의 도움에 정말 감사 할 것입니다. 감사합니다
x1 <1200 대신 x1> 1200을 사용 하시겠습니까? 총알이 화면에있는 동안 움직이는 것이 좋을 것 같습니다. 현재 총알이 발사 되 자마자 모든 탄환을 삭제하는 것처럼 보입니다. – ecline6
좋은 캐치. 이제 그들은 실제로 이동하지만 1200에 도달하면 이전과 같은 오류가 발생합니다 –
아래의 jwygralak의 대답은 NoneType – ecline6