Python 3.x &引用;“合并”;将Pygame中的多个图像合并到一个曲面中,以动态旋转它们
目前,我正在pygame wich制作一款游戏,其灵感来自一款名为“重新绘制”的游戏(该游戏是在2020年全球游戏大赛上制作的),目标是扩展船,探索岛屿,防止船沉没 为了更好的感觉,我想旋转整艘船。船舶被表示为一个类,所有区块都保存在一个列表中。每个区块都是一个单独的Python 3.x &引用;“合并”;将Pygame中的多个图像合并到一个曲面中,以动态旋转它们,python-3.x,pygame,python-3.7,pygame-surface,Python 3.x,Pygame,Python 3.7,Pygame Surface,目前,我正在pygame wich制作一款游戏,其灵感来自一款名为“重新绘制”的游戏(该游戏是在2020年全球游戏大赛上制作的),目标是扩展船,探索岛屿,防止船沉没 为了更好的感觉,我想旋转整艘船。船舶被表示为一个类,所有区块都保存在一个列表中。每个区块都是一个单独的pygame.Surface,它在船类中获得渲染。是否有一种方法可以动态地旋转所有这些块体,从而代替每个块体的旋转而不改变位置,使整艘船动态地旋转 可能所有的块都可以相对于它们的位置合并成一个大的曲面,或者带有块的主窗口曲面的一部分
pygame.Surface
,它在船类中获得渲染。是否有一种方法可以动态地旋转所有这些块体,从而代替每个块体的旋转而不改变位置,使整艘船动态地旋转
可能所有的块都可以相对于它们的位置合并成一个大的曲面,或者带有块的主窗口曲面的一部分被保存到另一个曲面上。我只是不知道解决这个问题的好方法。如果你不想的话,我可以上传我以后如何处理这些块的代码。非常感谢你的帮助 您可以将一个图像(只是一个曲面)blit到任何其他曲面上,而不仅仅是显示(参见文档)。因此,您可以创建一个合并曲面,并将船图像和您希望在船上显示的每个图像blit到该曲面上。像这样:
merged_surf.blit(some_surface, some_surface_rect)
其中some\u surface\rect
的位置部分描述了要将其放置在merged\u surf
上的位置,因此它相对于该merged\u surf
然后,您可以旋转该合并的\u surf
,其中包含所有其他图像(请参阅文档)。最后,将merged\u surf
显示在显示屏上
请记住,旋转曲面的边界框可能比原始图像的边界框大。如果要使中心保持在位,则需要将旋转曲面的中心rect指定给原始预旋转图像的中心。否则,它在旋转时会出现反弹