我正在进行单挑显示,类似于你在战斗机中发现的(http://i1.ytimg.com/vi/RYjBjT79hLo/hqdefault.jpg)。
有些元素只停留在屏幕上的一个位置,如空速和高度。这很简单。
我遇到麻烦的部分是音高阶梯(显示地平线上方/下方5,10,15等等的条形)和水平线。我试图实现它的方法是有一个png文件,其中已经创建了从-90到+90的所有条形。此文件的分辨率远远大于我的显示窗口,因此屏幕上仅显示与当前音高对应的条形+/- 10度。当用户投球时,图像向下移动,反之亦然。随着漂移角度增加(航向和速度矢量之间的角度,即侧滑),HUD向左或向右移动。问题在于轮换。我希望能够指定图像中心点的位置和旋转角度,而不仅仅是左上角,并让pygame正确渲染它。我不太确切知道rects是如何工作的,这是问题的一部分。
我的数学背景告诉我,最简单的方法是在屏幕上获取每个像素值的数组,然后乘以基于音高和滚动的变换矩阵,但我不认为pygame实际上让您可以访问该低级别信息。
[编辑]第二个想法,像素阵列可能不是最容易的。变换矩阵编辑数组中每个元素的值,但像素数组包含每个元素中的RGB信息。变换矩阵只会编辑每个像素的颜色,而不是实际变换它们。嗯.... [/编辑]
似乎pygame真的非常希望所有东西都装在与屏幕边框平行的矩形中,这对于滚动飞机来说是一个问题。我曾考虑过使用OpenGL,但这似乎有些过分。任何人都可以帮我在pygame中这样做吗?谢谢!