我正在PyGame中使用2D横屏游戏。对于每张地图,我们使用一个纹理(这是纹理的实际大小):
然后,我们使用以下代码加载图像:
sprite = pygame.image.load("Maps/MapTesting.png")
sprite.convert()
sprite = pygame.transform.scale(sprite,
(sprite.get_width()*6, sprite.get_height()*6))
如您所见,纹理被炸毁了6次以创建实际的地图纹理。平均而言,此纹理约为4500x800。每帧都必须在屏幕上涂抹此纹理,因为整个屏幕都是脏的(由于侧面滚动)。我们使用以下代码进行操作:
screen.blit(sprite, (0, 0),
(cameraposx, cameraposy, windowheight, windowwidth))
而且有效。问题在于它的运行速度很慢:我在低端的PC上只能获得40 FPS的微不足道,而且没有任何实际的AI /对象运行,而我们的目标是60 FPS。我们如何加快速度?
请注意,上面的代码已经过清理并且没有上下文。完整的代码可以在这里找到:https : //github.com/nightcracker/PyGG2
最后但并非最不重要的一点是,尽管上面的图像可能看起来像8位,但是游戏中的某些元素需要更高的位深度。