渲染轮廓字体的好方法是什么?

发布于 2024-07-26 20:26:21 字数 159 浏览 3 评论 0原文

我正在用 pygame 用 python 编写一个游戏,需要将文本渲染到屏幕上。

我想用一种颜色渲染此文本并带有轮廓,这样我就不必担心文本显示在哪种背景上。

pygame.font 似乎不提供直接执行此类操作的支持,我想知道是否有人有任何好的解决方案来实现此目的?

I'm writing a game in python with pygame and need to render text onto the screen.

I want to render this text in one colour with an outline, so that I don't have to worry about what sort of background the the text is being displayed over.

pygame.font doesn't seem to offer support for doing this sort of thing directly, and I'm wondering if anyone has any good solutions for achieving this?

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

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

发布评论

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

评论(2

深巷少女 2024-08-02 20:26:22

一种快速而肮脏的方法是使用轮廓颜色多次渲染文本,并在文本位置周围的圆圈上进行少量移动:

          1
       8  |  2
        \ | /
         \|/
     7----*----3
         /|\
        / | \ 
       6  |  4
          5

编辑:你的速度更快了! 不过我不会删除我的答案,这种 ASCII 艺术太棒了,值得活下去!

编辑 2: 正如 OregonGhost 提到的,您可能需要更多或更少的轮廓渲染步骤,具体取决于您的轮廓宽度。

A quick and dirty way would be to render your text multiple times with the outline color, shifted by small amounts on a circle around the text position:

          1
       8  |  2
        \ | /
         \|/
     7----*----3
         /|\
        / | \ 
       6  |  4
          5

Edit: Doh you've been faster ! I wont delete my answer though, this ASCII art is just too good and deserves to live !

Edit 2: As OregonGhost mentioned, you may need more or fewer steps for the outline rendering, depending on your outline width.

魂ガ小子 2024-08-02 20:26:22

我可以给你一个快速但糟糕的解决方案:

打印文本 8 次,将其包围,再加一次打印内部文本,例如

UUU
UIU
UUU

U 代表外部颜色,I 代表内部颜色。

I can give you a quick and bad solution:

print the text 8 times, to surround it, plus one more time for the inner text, like this

UUU
UIU
UUU

U for outer color and I for the inner color.

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