我正在用pygame編寫python遊戲,需要將文本呈現在屏幕上。什麼是渲染輪廓字體的好方法?
我想用一種顏色渲染這個文本的輪廓,這樣我就不用擔心文本顯示的背景是什麼樣的。
pygame.font似乎沒有提供直接做這種事情的支持,我想知道是否有人有任何好的解決方案來實現這一目標?
我正在用pygame編寫python遊戲,需要將文本呈現在屏幕上。什麼是渲染輪廓字體的好方法?
我想用一種顏色渲染這個文本的輪廓,這樣我就不用擔心文本顯示的背景是什麼樣的。
pygame.font似乎沒有提供直接做這種事情的支持,我想知道是否有人有任何好的解決方案來實現這一目標?
我可以給你一個快速和壞解決方案:
打印文本8次,圍繞着它,再加上一個更多的時間用於內部文本,這樣
UUU
UIU
UUU
U代表外顏色和我的內在顏色。
實際上,如果輪廓的寬度不超過一個像素,四次(角)就足夠了。兩個像素也應該很好。這取決於字體渲染器的速度,這個解決方案真的有多糟糕。我在XNA中使用它,它在那裏速度很快,至少如果文本是批處理渲染的。 – OregonGhost 2009-07-10 13:41:07
不錯的提示! – 2009-07-10 13:49:13
一個快速和骯髒的方法是多次與輪廓顏色渲染你的文字,通過少量周圍的文本位置的圓形轉向:
1 8 | 2 \ |/ \|/ 7----*----3 /|\ /| \ 6 | 4 5
編輯:DOH你去過更快 !雖然我不會刪除我的答案,但這個ASCII藝術太好了,值得活下去!
編輯2:正如OregonGhost提到的,根據輪廓寬度的不同,輪廓渲染可能需要更多或更少的步驟。
我已經接受了一個答案,但我仍然對其他存在遷移的解決方案感興趣。 – SpoonMeiser 2009-07-14 11:32:03