在开发游戏时,我遇到了一组精灵的小问题。我正在尝试做的是能够检测到角色(狗)与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] 删除。
我来说两句