用pygame绘制旋转字体

发布于 2024-10-17 12:45:57 字数 107 浏览 7 评论 0原文

使用 pygame 绘制用字体渲染的旋转文本的最佳方法是什么?我可以先绘制字体,然后rotozoom它,但如果可以直接绘制旋转的字形,特别是考虑到AA,似乎会得到更好的结果?

What's the best way to draw rotated text rendered with fonts with pygame? I can just draw the font then rotozoom it, but it seems better result would be gotten if it were possible to draw the glyphs directly rotated, especially taking AA into account?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

◇流星雨 2024-10-24 12:45:57

Pygame 没有您正在寻找的功能。

您必须使用您提到的方法,即在已渲染的字体上使用 rotozoom 。实际上,这种方法的质量并没有那么差。关于速度,无论如何您都不希望一直渲染字体。

如果您非常追求速度,并且文本不是动态的,那么您始终可以为要显示的每个文本创建一个缓存,即 32 个方向。 Pyglet 将允许您“免费”旋转精灵,即硬件加速。

或者您可以查看 pygame 使用的原始 SDL 库,看看是否可以找到直接绘制旋转字体的东西并破解 pygame 来使用它。

Pygame does not have the functionality you are looking for.

You will have to use the method you mention, i.e rotozoom on an the already rendered font. The quality of this method isn't all that bad actually. And concerning speed, you don't want to be rendering the fonts all the time anyway.

If you are desperate for speed, and the text isn't dynamic, you can always make a cache of i.e 32 directions for each text you want displayed. Pyglet will allow you to rotate sprites for "free", i.e hardware accelerated.

Or you can go look at the raw SDL libraries pygame uses and see if you can find something that draws rotated fonts directly and hack pygame to use it.

家住魔仙堡 2024-10-24 12:45:57

您可以在 pygame 中使用 pyOpenGL 表面,如果这可以简化您的工作。
Pyglet 也使用 OpenGL。

(对于 pygame 表面)您可以缓存渲染的文本,使用它来旋转。或者预先缓存所有 32 个方向。 [参见其他答案]

You can use a pyOpenGL surface in pygame, if that simplifies it for you.
Pyglet also uses OpenGL.

(for pygame surfaces) You can cache the rendered text, using that to rotate. Or pre-cache all 32 directions. [ see other answer ]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文