6

pygame中是否有类似的功能?

screen.fill(pygame.image.load('brick.bmp').convert()) 

我想用图像填充窗口(背景)以产生类似这样的效果:

在此处输入图像描述

我唯一的想法是将每块砖块都粘贴到屏幕上,但我认为这会减慢游戏速度。有谁知道如何做到这一点(并提供一些示例代码)?

这是一个有效但速度慢的方法片段

    While True:
        for y in range(0,600,32):
            for x in range(0,800,32):
                screen.blit( self.img,(x,y))
        ...
        pygame.display.flip()
4

2 回答 2

5

将每一块砖块涂抹到屏幕上,但我认为这会减慢游戏速度。

没有你想象的那么多。bliting 非常快。即使有某种“填充”命令,它仍然相当于将图像复制到表面,直到表面被覆盖。

如果背景图像是静止的,您可以在程序启动时渲染到屏幕外的表面,而不是通过填充纯色来擦除屏幕,而是对预渲染的背景进行 blit。

于 2012-06-02T00:18:04.647 回答
2

我在 Pygame 中找不到这个功能。但是,我有一种方法可以提高您方法的性能。您可以先创建一个曲面。让我们称之为bgSurfacebgSurface然后你用你的双循环方法把所有的砖都拼起来。然后在主循环中,您执行screen.blit(bgSurface, (0, 0)). 试试。

于 2012-06-05T12:18:28.303 回答