Pygame,有没有办法制作“屏幕层”?

3 python pygame screen layer

我正在开发一款坦克游戏作为学校项目,我正在努力使其尽可能用户友好(使用可自定义的键绑定、显示设置等)。但是,我不希望游戏窗口失去其比例,因此我想在游戏窗口的两侧添加边框以支持宽屏幕。

我附上了一张图片来说明我正在寻找的内容:

在此输入图像描述

因此,为了使其发挥作用,我需要一种制作“屏幕层”的方法。基础层是整个屏幕,侧面添加了一些图形以及显示乐谱的字体。然后在屏幕中间渲染第二层,即游戏窗口,其宽度和高度将明显小于基础层。

目前,游戏从屏幕的左上角开始渲染,直到所有图块都被渲染出来。因此,我认为最好将图块渲染在位于屏幕表面中间的单独表面上。

非常感谢一些关于如何使这成为可能的提示!:) 我在类和 pygame 方面没有太多经验,所以如果您也能给出充实的描述,那就太棒了!:D

slo*_*oth 6

只需在不同的表面上绘制不同的东西即可。

例如,Surface为您的游戏窗口创建一个(让我们称之为),并在该新窗口而不是 pygame 主窗口(这只是另一个)game_surf上绘制坦克和子弹等。SurfaceSurface

# the main window
screen = pygame.display.init() 

# just a regular surface
game_surf = pygame.surface.Surface(width, height)

...
# in your main loop
    # or however you draw your sprites
    your_sprite_group.draw(game_surf)
Run Code Online (Sandbox Code Playgroud)

然后将其传输到屏幕上

screen.blit(game_surf, the_position)
Run Code Online (Sandbox Code Playgroud)