如何防止精灵消失在pygame底部的背景中?

问题描述 投票:0回答:1

所以,我正在 Pygame 上编写一个游戏,我试图在游戏中添加背景图像。然而,当游戏运行时,当向下移动精灵时,它会消失在背景图像中,只有当精灵再次向上移动时才会重新出现。

这是我用来向游戏添加背景图像的游戏代码部分。


class Game:
    def __init__(self):
        pygame.init()
        self.window = pygame.display.set_mode((DISPLAYW, DISPLAYH))
        pygame.display.set_caption('Action!')
        self.clock = pygame.time.Clock()
        self.run = True
        self.play()



    def play(self):
        initial_pos = math.Vector2(int(DISPLAYW / 4), int(DISPLAYH / 4))
        self.play = True
        self.sprites = pygame.sprite.LayeredUpdates()
        self.blocks = pygame.sprite.LayeredUpdates()
        self.enemy = pygame.sprite.LayeredUpdates()
        self.player = Player(self, initial_pos)

    def events(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                self.play = False
                self.run = False
            if event.type == pygame.KEYDOWN:
                ...

    def update(self):
        self.sprites.update()

    def draw(self):
        self.sprites.draw(self.window)
        self.clock.tick(FPS)
        pygame.display.update()

    def main(self):
        background = pygame.image.load('Grass.png')
        while self.play:
            self.events()
            self.window.fill([255, 255, 255])
            self.window.blit(background, [0, 0])
            self.update()
            self.draw()
        self.run = False


game = Game()
game.menu()

while game.run:
    game.main()
pygame.quit()
sys.exit()

但是,错误仍然存在...

python pygame
1个回答
0
投票

这是一个顺序问题。在绘制场景中的所有内容后,您必须在应用程序循环的最后更新显示:

    def main(self):
        background = pygame.image.load('Grass.png')
        while self.play:
            # handle events
            self.events()

            # draw background
            self.window.fill([255, 255, 255])
            self.window.blit(background, [0, 0])

            # draw objects
            self.draw()

            # update the display
            self.update()

        self.run = False
© www.soinside.com 2019 - 2024. All rights reserved.