python - 重复平铺背景pygame

标签 python opengl pygame

pygame中有类似的功能吗?

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

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

enter image description here

我唯一的想法是将每 block 砖 block 都 block 化到屏幕上,但我认为这会减慢游戏速度。有谁知道如何执行此操作(并提供一些示例代码)?

这是一个有效但运行缓慢的方法片段

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

最佳答案

blit each brick onto the screen, but i think that would slow down the game.

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

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

关于python - 重复平铺背景pygame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10858700/

相关文章:

python - 如何从 Python re 获取不匹配的正则表达式组?

c++ - 在 glGenTextures 上获取 EXC_BAD_ACCESS

python - 可以在没有屏幕的情况下运行 Pymunk 模拟(就像没有实际看到它一样)?

python - 从列表循环播放声音

python - 值错误: Error when checking input: expected conv2d_input to have 4 dimensions

python - 如何在 Tkinter Python 中制作点击按钮?

python - 使用 pandas.merge() 时为所有列名添加后缀

java - 将 C++ OpenGL 帧缓冲区代码移植到 LWJGL - 我使用什么类?

opengl - 是否可以在不先将整个纹理加载到常规 RAM 的情况下将纹理加载到 OpenGL 中?

python - 将电场和磁场应用到自由粒子的二维模拟中