创建新精灵后,Pygame精灵处于非活动状态

2024-03-28 18:23:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我的精灵有问题。你知道吗

我创建了一个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)

但是我有一个问题,在地图上的第一个精灵被精灵碰撞检测到。当我放置第二个,只有第二个与碰撞检测工作。第一个还在地图上,但看起来,它不再是精灵了。你知道吗

谢谢:)


Tags: posrectimageselfinitdef地图pygame
1条回答
网友
1楼 · 发布于 2024-03-28 18:23:58

我猜在某个地方,您用该类的实例重写了您的类lumbercheck,因为如果lumbercheck仍然是一个类而PlaceOnMap是一个instace方法,则lumbercheck.PlaceOnMap(pos)不应该工作。你知道吗

相关问题 更多 >