绘制形状与渲染图像?

时间:2013-11-15 15:53:33

标签: pygame

我正在使用Pygame 1.9.2a和Python 2.7来设计实验,到目前为止只在需要的基础上使用Pygame并且不熟悉所有Pygame类或概念(例如Sprites,我不知道)。

我需要在不同位置的屏幕上绘制许多(一次45-50个)形状,以创建拥挤的显示。形状从位移的Ts,位移的Ls到线交叉点变化。 [如 _ | 等]!很抱歉,我无法发布此图片,因为我显然没有10的声誉,这是发布图片所必需的。

我还需要8种不同方向的这些形状。我最初正在考虑生成点列表并使用它们来绘制线条。但是,对于单个形状,我需要四个点,我需要50个这样的形状。同样,我不确定如何旋转这些曾经绘制过的。我可以使用Pygame Transform吗?我认为它们可以用在Rects上。或者我是否也必须为不同的方向生成点,以便在绘制时,它们看起来是旋转的,即在所需的方向上?

我想到的替代方案是为GIMP中的形状或类似的软件生成图像。但是,对于任何屏幕,我将需要加载大约50个图像。我是否必须使用Pygame Image并为这样的事情拨打50个电话?或者有更简单的方法来处理多个图像?

此外,哪种方法会对性能产生更大影响?既然,这是一个实验,我也担心计时精度。我不知道在Pygame中是否有不同的生成形状的方法。请帮我决定哪两个(或不同的方法)更适合我的目的。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用pygame.draw.rect()pygame.draw.polygon()更容易(因为您不需要知道如何使用GIMP或InkScape :))但是您必须在另一个pygame.Surface()上绘制它(要获取位图)并且您可以旋转它,添加alpha(制作透明胶片),然后将其放在屏幕上。

您可以创建函数以在程序启动时生成具有不同方向的所有形状的图像(使用Surface())。如果您需要更好看的图像,可以更改功能以加载在GIMP中创建的图像。

自己尝试每种方法 - 这是检查哪种方法对你有好处的最佳方法。

顺便说一句:您可以保存生成的图像pygame.image.save(),然后加载它。您可以在一个图像上包含所有元素,并使用图像的一部分Surface.get_clip()