2009-07-10 123 views
6

我正在用pygame編寫python遊戲,需要將文本呈現在屏幕上。什麼是渲染輪廓字體的好方法?

我想用一種顏色渲染這個文本的輪廓,這樣我就不用擔心文本顯示的背景是什麼樣的。

pygame.font似乎沒有提供直接做這種事情的支持,我想知道是否有人有任何好的解決方案來實現這一目標?

+0

我已經接受了一個答案,但我仍然對其他存在遷移的解決方案感興趣。 – SpoonMeiser 2009-07-14 11:32:03

回答

2

我可以給你一個快速和解決方案:

打印文本8次,圍繞着它,再加上一個更多的時間用於內部文本,這樣

UUU 
UIU 
UUU 

U代表外顏色和我的內在顏色。

+1

實際上,如果輪廓的寬度不超過一個像素,四次(角)就足夠了。兩個像素也應該很好。這取決於字體渲染器的速度,這個解決方案真的有多糟糕。我在XNA中使用它,它在那裏速度很快,至少如果文本是批處理渲染的。 – OregonGhost 2009-07-10 13:41:07

+0

不錯的提示! – 2009-07-10 13:49:13

3

一個快速和骯髒的方法是多次與輪廓顏色渲染你的文字,通過少量周圍的文本位置的圓形轉向:

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

編輯:DOH你去過更快 !雖然我不會刪除我的答案,但這個ASCII藝術太好了,值得活下去!

編輯2:正如OregonGhost提到的,根據輪廓寬度的不同,輪廓渲染可能需要更多或更少的步驟。