-1
具體而言,我希望sg_fireball中的每個精靈都能「反彈」,而不會給Spell()中的每個精靈帶來「反彈」。有沒有一種乾淨的方式來做到這一點,而不是使「Spell()」的參數「反彈」,或循環通過sg_fireball?雪碧從組中繼承屬性的最佳方式?
相關的代碼片段:
self.sg_fireball = pygame.sprite.Group()
self.sg_fireball.speed = 6.0
self.sg_fireball.image = pygame.image.load("fireball.png")
self.sg_fireball.bounces = 1
if event.type == pygame.MOUSEBUTTONDOWN:
self.character.cast(self.sg_fireball)
def cast(self, sg):
sg.add(Spell(self.rect.center, sg.speed, self.dir, sg.image))
class Spell(pygame.sprite.Sprite):
def __init__(self,pos, speed, direction, img, bounces):
pygame.sprite.Sprite.__init__(self)
self.bounces = bounces
self.image = img
self.rect = pygame.Rect(pos, (8,8))
self.posx = self.rect.x
self.posy = self.rect.y
self.speed = speed
self.dir = direction
self.velx = self.speed*math.cos(self.dir)
self.vely = self.speed*math.sin(self.dir)
這導致我在正確的方向,謝謝。最終生成一個派生自Spell的類並調用該子類,使用組中定義的屬性而不是參數。 – nivekuil