我正在将 Tank 游戏作为一个学校项目进行开发,我正在努力使其尽可能对用户友好(使用可自定义的键绑定(bind)、显示设置等)。但是,我不希望游戏窗口失去比例,所以我想我会在游戏窗口的两侧添加边框以支持宽屏。
我附上了一张图片来说明我在寻找什么:
因此,为了让它起作用,我需要一种制作“屏幕层”的方法。基础层是整个屏幕,两侧添加了一些图形和一个显示乐谱的字体。然后第二层将在屏幕中间渲染,即游戏窗口,其宽度和高度将明显小于基础层。
此刻,游戏从屏幕的左上角开始渲染,直到所有的方 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/