python - Pygame,有没有办法制作 "screen layers"?

标签 python pygame screen layer

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

我附上了一张图片来说明我在寻找什么:

enter image description here

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

此刻,游戏从屏幕的左上角开始渲染,直到所有的方 block 都被渲染完。所以这就是为什么我认为最好让图 block 呈现在位于屏幕表面中间的单独表面上。

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

最佳答案

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

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

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

然后blit到屏幕上

screen.blit(game_surf, the_position)

关于python - Pygame,有没有办法制作 "screen layers"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33630420/

相关文章:

objective-c - 使用 objective c for mac 截屏

c# - 在屏幕上搜索 Pixel

android - 哪种布局适合所有 Android 手机?

python - 在 Python 中按数字阈值排序的有效方法?

python - 在python中替换撇号/短词

python - 未绘制矩形

python - Pygame Sprite 太慢

python - 编译多线程Python受GIL影响

python - Keras 层构建错误 : build() takes 1 Positional Argument but two were given

python - 尝试在 pygame 中将重力带入类似马里奥的平台游戏中