好的,這是我第一次在這個網站,所以我希望我得到這個權利。Pygame蛇遊戲
我在Pygame做了一個蛇遊戲,爲了學校的評估任務,我有個問題。我無法讓蛇的身體部位消失。
目前,這是如何產生的身體部位:
def more_body(bodyparts, x, y, z):
body = pygame.sprite.Sprite()
body.image = pygame.image.load('body.png')
body.rect = head.image.get_rect()
body.rect.right = x
body.rect.top = y
body.timeleft = z
bodyparts.add(body)
身體刪除檢查,如IS,是這樣的。
for x in bodyparts:
body.timeleft -= 1
if body.timeleft == 0:
body = False
bodyparts是,相當明顯,正文部分的分組。它是OrderedUpdates精靈組。
問題是代碼似乎不喜歡這個解決方案。目前,該錯誤被列爲「NameError:name'body'未定義」。如果我試圖擴展它的檢查來引用bodyparts.body.timeleft而不是body.timeleft,我反而得到「AttributeError:'OrderedUpdates'對象沒有屬性'body'」。
我想出了第二種解決方案。由於bodyparts是OrderedUpdates組,所以應該可以根據列表中的位置來選擇和刪除特定的片段。因此,計劃的步驟如下:
- 將len(bodyparts)與先前設置的變量進行比較。
- 如果長度超過蛇的長度,刪除第一個添加到bodyparts的項目 - 我不確定這是否是第一個或最後一個。
我的主要問題是:
這是一個可行的解決方案,您將能夠提供的代碼來做到這一點?我能否像列表一樣對待它,然後分割它,以便正式組件的前端(或後端,取決於它們的添加方式)被刪除?任何你可以提供的解決方案都會有很大的幫助。
我實際上並沒有意識到刪除方法。有了這個說法,X體衝突應該是顯而易見的......>。不管怎樣,這完全解決了這個問題,謝謝。 – Leafsw0rd