在开发我的游戏时,我遇到了一组精灵的轻微问题。我想要做的是能够检测角色(狗)与精灵(骨骼)的碰撞,并在发生碰撞时,添加点并更改屏幕上的坐标。在这个阶段,我可以添加点并将骨骼放置在屏幕上的不同位置,但骨骼的第一个实例保持在同一位置。如何从屏幕的一个位置移除我的精灵到另一个?
我的代码:
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'对象没有属性'追加'
欢迎任何建议
答案 0 :(得分:2)
pygame.sprite.Group
与列表不同;你不能append
。相反,根据the documentation,您应该add
:
sprites.add(sp1)