2014-05-16 40 views
-2

這是參考我創建的遊戲。這是一個簡單的遊戲,如果球擊中了方塊,方塊應該消失。如果我做了這樣的事情:如何刪除一個對象,當有東西碰到它時?

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

你是什麼意思*「不工作」做*?錯誤?意外的行爲?你用什麼來製作用戶界面? – jonrsharpe

+0

我正在使用python畫布。通過不起作用,我的意思是沒有任何反應。球彈起來了,就像它應該的那樣,但是球依然在那裏。它不會被刪除。 – Avinash12388

+0

你的意思是「tkinter帆布」?你是什​​麼「進口」?您可能需要「刪除(block)」而不是「delete(block.id)」。 – jonrsharpe

回答

0

canvas.delete(block.id)絕對會工作如果block.id是一個有效的代表畫布上的對象的ID。如果它不起作用,那麼可能不是你認爲的那樣。

在你的代碼的問題是,你正在使用canvas.delete而不是self.canvas.delete,並block.id而不是self.block.id

+0

謝謝,我得到的問題是我必須指定自我。自從我進入Ball課後,我應該寫canvas.delete(self.block.id)。 – Avinash12388

相關問題