当某些东西击中它时,如何删除它?

时间:2014-05-16 20:41:19

标签: python tkinter

这是关于我正在创建的游戏。这是一个简单的游戏,如果球击中阻挡,阻挡应该消失。如果我做了这样的事情:

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

该块不会被删除。 那么当球击中它时你需要做什么才能删除阻挡?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果canvas.delete(block.id)是表示画布上对象的有效ID,则

block.id绝对有效。如果它不起作用,那么block.id可能不是你认为的那样。

您的代码中的问题是您使用canvas.delete而不是self.canvas.deleteblock.id而不是self.block.id