2015-10-13 2 views
1

У меня проблема с моими спрайтами.Pygame sprites - неактивен после создания нового спрайта

Я создал класс спрайта:

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()) 

Тогда Я помещаю Sprite на карту, где я нажал:

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

Но у меня возникла проблема, заключающаяся в том, что первый спрайт, расположенный на карте, обнаруживается при столкновении спрайтов. Когда я помещаю второй, только второй работает с обнаружением столкновения. Первый по-прежнему находится на карте, но похоже, что это не спрайт.

Спасибо :)

ответ

1

Я думаю, где-то переопределить класс lumbercheck с экземпляром этого класса, потому что lumbercheck.PlaceOnMap(pos) не должен работать, если lumbercheck еще класс и PlaceOnMap является метод instace.

Смежные вопросы