【发布时间】:2019-07-08 23:24:43
【问题描述】:
目前,我正在开发一个 2D 自上而下风格的 RPG(在 Pygame 中;最新版本的 Python),我想让角色绘制过程尽可能简单。但是,我不知道如何实现它。
我已经知道使用 for 循环绘制精灵会影响我的游戏性能,然后我还要担心更多代码。
我想做的是拍摄一个“裸体”精灵,将眼睛、头发和衣服放在上面,然后将其保存为新图像。
(MaleSprite.png + Eyes1.png + Hair1.png + Clothes1.png = Spritesheet.png)
我已经有一个裸体精灵的精灵表,我也有一个发型的精灵表。我需要将头发向上移动两个像素,然后将其绘制在角色的顶部,然后将其保存到新图像中(因为角色的精灵表是 64px 高,所以新图像将是 66px 高)。
我将处理代码中出现的任何其他依赖项,我只需要组合这些图像,我相信我应该为此使用 Pillow。
我想获取玩家对眼睛颜色、头发和服装的选择,然后将其写入他们的玩家文件。之后,makesprite() 函数应该获取精灵,根据需要调整它们(头发将向上移动两个像素,帽子可能会更多),然后将其保存为我可以使用的新精灵表 (png)在我的 sprite.draw() 函数中。
【问题讨论】:
-
这听起来像premature optimisation,这通常很糟糕。通常我们对什么是慢和快的想法与实践不同。我建议实施您的初始方法,然后研究如何优化问题。在重叠图像方面,您可以在配置过程中将它们全部blit 到您的精灵图像上。当你展示你迄今为止所做的尝试时,会更容易回答问题。
-
@Eric 提出了一个很好的观点。显然代码不应该每次都绘制 4x sprites 来绘制玩家位图,但是可以将 4 个部分组合为一次性操作,然后用作单个 sprite。即使在
sprite.__init__()。实际上听起来很灵活。 -
实际上,你们都提出了很好的观点。我从来没有听过关于过早优化的谚语(这实际上是我一直在做的),所以我会先努力让它发挥作用,呵呵。感谢您的建议!
标签: python pygame python-imaging-library sprite sprite-sheet