2013-02-28 50 views
-1

我的遊戲發射子彈,但問題是你不能投入更多的子彈比你放入的數量(imageA,imageB,imageC等... )所以,我必須爲每個玩家每槍寫出「blit blah blah imageA」大約30次。這只是刺激。無盡的金額的一行代碼,事件後刪除,產生後另一個

有無論如何根據角色射擊的子彈數量來生成代碼,然後生成一個代碼來使其閃爍?當它離開屏幕時,我可以刪除新的代碼。 (我只是想知道如何刪除,而不是如何讓它在屏幕上熄滅時進行)我知道這一點。

+0

這聽起來像你動態創建代碼。這是真的?因爲它不應該。 – phkahler 2013-02-28 19:26:38

+0

什麼是imageA,imageB? – phkahler 2013-02-28 19:29:29

+1

您可以將所有的項目符號存儲在[list](http://docs.python.org/2/tutorial/introduction.html#lists)中,在這種情況下,您只需要一個變量來爲無限數量的項目符號。 – Kevin 2013-02-28 20:20:32

回答

2

我相信你是以錯誤的方式接近問題的。 假設你有一個有槍的玩家。所以我們的玩家類將部分看起來像這樣:

class Player 
    def __init__(self): 
     self.position = [0,0] 
     self.bullets = [] 

我們還需要一個子彈類,它也有一個位置。 現在,玩家每次按空格鍵時,都會在列表中添加一個新的項目符號。

def shoot(self): 
    self.bullets += Bullet(self.position) 

然後,在while循環中,您畫您的播放器,你也將需要做一個foreach也繪製子彈。沒有必要命名每個子彈,甚至有自己的照片。

相關問題