我的精灵有问题。你知道吗
我创建了一个sprite类:
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)
但是我有一个问题,在地图上的第一个精灵被精灵碰撞检测到。当我放置第二个,只有第二个与碰撞检测工作。第一个还在地图上,但看起来,它不再是精灵了。你知道吗
谢谢:)
我猜在某个地方,您用该类的实例重写了您的类
lumbercheck
,因为如果lumbercheck
仍然是一个类而PlaceOnMap
是一个instace方法,则lumbercheck.PlaceOnMap(pos)
不应该工作。你知道吗相关问题 更多 >
编程相关推荐