Pygame:从中心点移动和旋转图像

2024-09-28 21:14:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个平视显示器,类似于你在战斗机上看到的(http://i1.ytimg.com/vi/RYjBjT79hLo/hqdefault.jpg)。在

有些元素只是停留在屏幕上的一个地方,比如空速和高度。这很简单。在

我遇到麻烦的部分是俯仰梯(在地平线上/下显示5、10、15度等度的条形图)和水平线。我尝试实现它的方法是创建一个png文件,其中包含从-90到+90的所有条。这个文件的分辨率比我的显示窗口大得多,所以屏幕上只显示与当前音调(+/-10度)相对应的条形图。当用户向上倾斜时,图像向下移动,反之亦然。随着漂移角的增加(航向和速度矢量之间的角度,即侧滑),HUD向左或向右移动。问题在于轮换。我希望能够指定图像中心点的位置和旋转角度,而不仅仅是左上角,并让pygame适当地渲染它。但我不太清楚这部分的工作。在

我的数学背景告诉我,最简单的方法是在屏幕上获取每个像素值的数组,然后乘以基于俯仰和滚动的变换矩阵,但我不认为pygame真的允许你访问这些低级信息。在

[编辑]仔细想想,像素阵列可能不是最简单的。变换矩阵编辑数组中每个元素的值,但像素数组包含每个元素中的RGB信息。变换矩阵只会编辑每个像素的颜色,而不是实际变换它们。嗯。。。。[/编辑]

似乎pygame真的希望所有的东西都被包装成平行于屏幕边界的矩形,这对于一架滚动的飞机来说是个问题。我曾想过改用OpenGL,但这似乎有点过头了。有人能帮我在pygame里做这个吗?谢谢!在


Tags: 文件方法图像信息元素编辑屏幕矩阵