pygame精灵组

乔·多伊

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

我的代码:

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)

我目前遇到的错误是:追溯(最近一次调用最近):文件“ E:\ game \ new.py”,行86,在sprites.append(sp1)中AttributeError:'Group'对象没有属性'附加'

欢迎任何建议

琼斯·哈珀

Apygame.sprite.Group与列表不同;你不能append做到这一点。相反,根据文档,您应该add

sprites.add(sp1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章