python - Pygame 大表面

标签 python graphics pygame

我正在绘制一张真实世界地板的 map ,尺寸约为 100,000 毫米 x 200,000 毫米。

我的初始代码包含一个函数,可以使用 pygame map 的窗口大小将任何基于毫米的位置转换为屏幕定位,但在深入研究了一些 pygame 函数后,我意识到 pygame 转换函数非常强大。

相反,我想创建一个与现实世界比例为 1:1 的表面,然后在将其传输到屏幕之前对其进行缩放。

这是这样做的正确方法吗?我收到一条错误消息,指出宽度或高度太大。这是pygame的限制吗?

最佳答案

我不完全理解你的问题,但尝试在这里回答它如下。

不,您不应该完全绘制到屏幕然后缩放它。这是错误的做法。您应该铺设非常大的表面,并且只绘制相关的瓷砖。如果您需要非常大的 View ,您应该使用缩小的图像(预缩放)。可能是因为绘制极大的表面所需的内存量令人望而却步,并且缩放速度会很慢。

使用某种全局矩阵将坐标转换为平铺版本,将所有内容缩放到您期望的大小。因此,您还应该通过测试视口(viewport)边界框内的包含情况来过滤掉不可见的 Sprite 。跟踪您的视口(viewport)位置。您将能够根据每个 Sprite 的“世界”坐标计算其在视口(viewport)中的位置。

关于python - Pygame 大表面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24743758/

相关文章:

Python 'long' 对象没有属性 'to_bytes'?

python - 如何计算从 pb 文件加载的 tensorflow 模型的触发器

javascript - 如何阻止机器人提交网络表单

java - 如何动态居中图形

java - 从 OpenGL ES 2.0 中读取纹理

cocoa - 如何创建具有倾斜效果的 NSAffineTransform?

python - 使用 Python 流式传输音频(没有 GStreamer)

python - 名称 "ClassName"未定义,即使我确信我导入正确(Python)

python - python 包装器/包应该安装在哪里

python - Pygame 中向上转换物的故障排除