这是关于我正在创建的游戏。这是一个简单的游戏,如果球击中阻挡,阻挡应该消失。如果我做了这样的事情:
class Block:
def __init__(self,canvas,color):
self.canvas = canvas
self.id = canvas.create_rectangle(10,10,110,20,fill=color )
然后:
def hit_block(self,pos):
block_pos = self.canvas.coords(self.block.id)
List = [block_pos]
for i in List:
if pos[0] >= i[0] and pos[2] <= i[2]:
if pos[1] >= i[1] and pos[1] <= i[3]:
canvas.delete(block.id)
self.score()
global a
a += 1
return True
return False
该块不会被删除。 那么当球击中它时你需要做什么才能删除阻挡?
谢谢!
答案 0 :(得分:0)
canvas.delete(block.id)
是表示画布上对象的有效ID,则 block.id
绝对有效。如果它不起作用,那么block.id
可能不是你认为的那样。
您的代码中的问题是您使用canvas.delete
而不是self.canvas.delete
和block.id
而不是self.block.id