首页 文章

Pygame sprites组

提问于
浏览
0

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

我的代码:

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行,在sprites.append(sp1)中AttributeError:'Group'对象没有属性'附加'

欢迎任何建议

1 回答

  • 2

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

    sprites.add(sp1)
    

相关问题