2015-10-13 111 views
1

我的精灵有问题。Pygame精灵 - 创建新精灵后不活动

我创建了一个精灵类:

class lumbercheck(pygame.sprite.Sprite): 
    def __init__(self): 
     pygame.sprite.Sprite.__init__(self) 
     self.image = pygame.image.load("holzfaeller.png") 
     self.rect = self.image.get_rect() 

    def PlaceOnMap(self, pos): 
     self.rect.center = pos 

新增的精灵群体:

lumbercheck_g = pygame.sprite.RenderPlain(lumbercheck) 
allbuildings = pygame.sprite.RenderPlain((lumbercheck, ...)) 

现在我开始游戏循环,并要求精灵的碰撞:

if any(sprite.rect.collidepoint(pos) for sprite in allbuildings.sprites()) 

然后我将雪碧放置在地图上,我点击了它:

elif event.type == pygame.MOUSEBUTTONDOWN and holzfaeller is True and tilemap_1[pos_y][pos_x] == 3: 
    lumbercheck.PlaceOnMap(pos) 
    lumbercheck_g.draw(gameDisplay) 

但我有问题,第一个精灵放置在地图上的onyl被精灵碰撞检测到。当我放置第二个时,只有第二个与碰撞检测一起工作。第一个仍然在地图上,但看起来像,它不再是一个精灵。

谢谢:)

回答

1

我猜你的地方覆盖您lumbercheck类与类的实例,因为如果lumbercheck仍然是一个阶级和PlaceOnMap是instace方法lumbercheck.PlaceOnMap(pos)不应该工作。