好吧,我在我的遊戲(玩家,老闆,levelGoal ...)中有某些東西只在一個實例中在任何給定時間存在,並且因此我想通過讓這些東西成爲手動聲明的精靈來簡化我的代碼 - 而不是先將它們存在爲需要實例化爲對象的類。Pygame 1.9.3:向組中添加精靈(沒有職業)
(很多人會說這是最好的組一切成類,無論如何,但我是否不同意這一點 - it'd肯定會知道,以防萬一解決的辦法有用)
我會就像爲了檢測命中(並在屏幕上繪製)的目的而將這些精靈分組在一起。但是,我遇到了這個問題。我認爲這將非常簡單,使一個孤立的,「無類」的精靈,並將其添加到列表。
bloobList = pygame.sprite.Group()
blooby = pygame.sprite.Sprite
blooby.image = pygame.Surface([200,200])
blooby.image.fill([0,0,0])
blooby.rect = blooby.image.get_rect()
bloobList.add(blooby)
但是,當運行這個時,應用程序在啓動時崩潰。我的IDE從pygame的圖書館開闢了sprite.py,帶我到線378,並告訴我:
builtins.TypeError: add_internal() missing 1 required positional argument: 'group'
我GOOGLE了四處尋找這意味着什麼,沒有發現答案。爲了檢查我自己,我寫了一個類+對象+組添加方案完全相同的程序:
moochList = pygame.sprite.Group()
class Mooch(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface([200,200])
self.image.fill([0,0,0])
self.rect = self.image.get_rect()
stootch = Mooch()
moochList.add(stootch)
而這一個完美的工作一切正常。我查看了Pygame.org的文檔,我不認爲它必須是一個從類中產生的對象,才能被添加到一個組中,但它並沒有具體說「無類」的精靈也是允許的。
我是Pygame的全新新人,因此我期望知道我錯過了一些非常明顯的東西,但是導致我認爲應該允許進入組的分類精靈是group.add函數涉及特定的精靈名稱和組本身 - 沒有提及精靈屬於的類。