当前位置: 首页 > 知识库问答 >
问题:

"合并"Pyplay中的多个图像到一个曲面,以动态旋转它们

娄振
2023-03-14

目前,我正在pygame中开发一款游戏,该游戏的灵感来自一款名为“重新绘制”的游戏(该游戏是在2020年全球游戏大赛上制作的),目标是扩展船,探索岛屿,防止船沉没。

为了有更好的感觉,我想旋转整艘船。船被表示为一个类,所有块保存到一个列表中。每个块都是一个pyplay。Surface在船舶类中呈现。有没有一种方法可以动态旋转所有这些块,这样整个船就可以动态旋转,而不是每个块都旋转而不改变位置。

可能所有的块都可以相对于它们的位置合并成一个大的曲面,或者带有块的主窗口曲面的一部分被保存到另一个曲面上。我只是不知道解决这个问题的好方法。

共有1个答案

长孙明知
2023-03-14

您可以将图像(只是一个曲面)blit到任何其他曲面上,而不仅仅是显示(请参见此处的文档)。因此,您可以创建一个合并曲面,并将船图像和您希望在船上显示的每个图像blit到该曲面上。这样地:

merged_surf.blit(some_surface, some_surface_rect)

其中some\u surface\rect的位置部分描述了要将其放置在merged\u surf上的位置,因此它相对于该merged\u surf

然后,您可以将该merged_surf与所有其他图像一起旋转(请参阅此处的文档)。然后最后把那个merged_surf放到显示屏上。

请记住,旋转表面的边界框可能比原始图像的边界框大。如果您试图将中心保持在适当的位置,您将需要将旋转表面的中心指定为原始预旋转图像的中心。否则,当它旋转时,它会出现反弹。

 类似资料:
  • 我正在寻找帮助开发(或一个库),可以让我合并在一起的多个图像到一个ImageView。 我的应用程序将用户之间的交互组合在一起,而不是单独地显示它们,因此我希望合并它们的所有化身,这样一个适配器单元格就可视化了一个“组”。 Facebook.com的聊天就是一个很好的例子: 我的问题是,我如何在Android/Java中提供这个功能?据推测,它的图像数量可能介于1到4之间。请告诉我您能给出的任何建

  • 我有一个图像组件,我想在其中旋转源: 我从代码中设置了ImageTarget的源代码。 在转换(RenderTransformorMorigin和RotateTransform)之前,我的窗口是这样的: 但在旋转之后: 所以,正如你所看到的,宽度和高度都发生了变化。 所以我的问题是: 为什么大小发生了变化? 如何将旋转后的图像对准左上角(与之前相同)? 谢谢 编辑:大小没有改变,我用不同的大小拍摄

  • 问题内容: 我的应用程序需要多个jar才能工作。由于它是桌面应用程序,因此我无法让用户负责安装。因此,在我的构建脚本中,我将jar内容解压缩到我的构建目录中,删除清单文件,编译我的软件,然后再次对其进行jar。一切正常,因为我的问题是此过程是否有长期副作用? 问题答案: 过去,JAR的内容很奇怪(例如包含和的DB2驱动程序;在Windows文件系统中解压缩后,这两个软件包将合并在一起)。 您需要了

  • 问题内容: 我有5张单页tiff图片。我想将所有这5张tiff图片合并为一张多页tiff图片。我正在使用Java Advanced Imaging API。我已经阅读了SUN提供的JAI API文档和教程。我是JAI的新手。我知道Java的基本核心。我不了解SUN提供的这些文档和资料。所以,朋友们请告诉我如何将5个tiff图像文件合并为一个多页tiff图像。请给我一些有关上述主题的指导。我一直在互

  • 问题内容: Gradle可以将多个项目合并到一个jar中吗? 我知道您可以使用以下方法针对单个项目执行此操作: 但是一个人如何将多个子项目压缩到一个jar中呢? 我试过了,但不起作用: 问题答案: 这是我的解决方案,它稍微简单一些: 代码已在Gradle 1.12上进行了测试

  • 我需要设计基本图像滑块使用jquery显示图像的div宽度(312px X 214px)。当页面加载时,连续显示图像的一个周期;每5秒从左到右滑动一次。 在函数FeaturedPropertyImgSlider中,我可以用jquery动画向左滑动div但只能滑动一次。???? 在此多谢