Pygame sprites组

时间:2014-06-28 09:45:20

标签: python pygame

在开发我的游戏时,我遇到了一组精灵的轻微问题。我想要做的是能够检测角色(狗)与精灵(骨骼)的碰撞,并在发生碰撞时,添加点并更改屏幕上的坐标。在这个阶段,我可以添加点并将骨骼放置在屏幕上的不同位置,但骨骼的第一个实例保持在同一位置。如何从屏幕的一个位置移除我的精灵到另一个?

我的代码:

sprites = pygame.sprite.Group()
sprites_no = 20

...

class MySprite(pygame.sprite.Sprite):
    def __init__(self, name):
        self.health = 3
        self.name = name
        self.points = 0

    def printName(self):
        print (self.name)


class Dog(MySprite):
    def __init__(self, pos, name):
        super(Dog, self).__init__(name)
        self.image = pygame.image.load("dog_left.png")
        self.rect = self.image.get_rect(topleft=pos)
        self.move_x = 0
        self.move_y = 0



    def draw(self, screen):
        screen.blit(self.image, self.rect)

    def takeBone(self):
        takebone = pygame.sprite.spritecollide(player, sprites, True)
        if takebone == True:
            self.points += 1
            bone.changePos()

...

class Bone(MySprite):
    def __init__(self, pos, name):
        super(Bone, self).__init__(name)
        self.name = name
        self.image = pygame.image.load("bone.png")
        self.rect = self.image.get_rect(topleft=pos)

...

for i in range(sprites_no):
    sp1_x = random.randrange(0, 475)
    sp1_y = random.randrange(0, 275)
    sp1 = Bone([sp1_x, sp1_y],"Bone")
    sprites.append(sp1)

我目前得到的错误是: Traceback(最近一次调用最后一次):   文件" E:\ game \ new.py",第86行,in     sprites.append(SP1) AttributeError:' Group'对象没有属性'追加'

欢迎任何建议

1 个答案:

答案 0 :(得分:2)

pygame.sprite.Group与列表不同;你不能append。相反,根据the documentation,您应该add

sprites.add(sp1)