Erweiterte Sprite-Collusion
Verfasst: Donnerstag 10. Juni 2010, 17:33
Ich hab habe einen kleinen Zombie-Shooter programmiert der zwar funktioniert, aber nicht ganz so, wie ich will:
Wenn eine Sprite-Kollesion zwischen dem kugel-sprite und dem zombie-sprite stattfindet, soll der zombie nicht einfach gekillet werden, sonder seine bewegung unterbrochen und das zombie-bild mit einem blutfleck ersetzt werden.
Beide Sprites sind als Gruppe definiert und ich nutze den Befehl "pygame.sprite.groupcollide(shots, zombies, 1, 0)".
Wenn ich den zombie in in der funktion kille, wird verschwindet der getroffene, wenn in aber nicht kille und die bewegung und das bild änderen will, wird ein zufälliger zombie gestoppt und dessem bild ersetzt.
Würde mich über Vorschläge freuen
Wenn eine Sprite-Kollesion zwischen dem kugel-sprite und dem zombie-sprite stattfindet, soll der zombie nicht einfach gekillet werden, sonder seine bewegung unterbrochen und das zombie-bild mit einem blutfleck ersetzt werden.
Beide Sprites sind als Gruppe definiert und ich nutze den Befehl "pygame.sprite.groupcollide(shots, zombies, 1, 0)".
Wenn ich den zombie in in der funktion kille, wird verschwindet der getroffene, wenn in aber nicht kille und die bewegung und das bild änderen will, wird ein zufälliger zombie gestoppt und dessem bild ersetzt.
Code: Alles auswählen
class zombie(pygame.sprite.Sprite):
def __init__(self, spawn_punkt):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load("zombie.png").convert_alpha()
self.rect = self.image.get_rect()
self.rect.topleft = spawn_punkt
self.move= True
def update(self):
if pygame.sprite.groupcollide(shots, zombies, 1, 0):
self.move=False
self.image=pygame.image.load("tot3.png").convert_alpha()
if self.move:
self.rect.move_ip((0, 2))
else:
self.rect.move_ip((0, 0))
if self.rect.bottom == 550:
self.kill()
global leben
leben=leben-5
Würde mich über Vorschläge freuen
