這是因爲你從來沒有真正調用Bullet
對象的update
方法。
我懷疑你想在update_bullets
函數中做到這一點,所以這裏是修復。
def update_bullets(aliens, bullets):
"""Update position of bullets and get rid of old bullets."""
#Check for any bullets that have hit aliens.
#If so, get rid of the bullet and the alien.
collisions = pygame.sprite.groupcollide(bullets, aliens, False, True)
#Get rid of bullets that have disappeared.
for bullet in bullets.copy():
bullet.update()
if bullet.rect.bottom <= 0:
bullets.remove(bullet)
print(len(bullets))
我將建議改變for bullet in bullets.copy()
到for bullet in bullets
。因爲它的複製方法不會改變任何東西!如果您不相信我在更改前後添加print(bullets)
:您會發現在這種情況下.copy()
只是浪費時間,內存並且是錯誤的編碼形式。
尋求調試幫助的問題(「爲什麼不是這個代碼工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現**的**最短**代碼** 。查看[help/on-topic] – khelwood