2009-07-10 8 views
6

Piszę grę w Pythonie z pygame i muszę renderować tekst na ekranie.Jaki jest dobry sposób renderowania zakreślonych czcionek?

Chcę renderować ten tekst w jednym kolorze z konspektem, aby nie musiałem się martwić o rodzaj tła, na którym wyświetlany jest tekst.

Pygame.font nie oferuje wsparcia dla robienia tego typu rzeczy bezpośrednio i zastanawiam się, czy ktoś ma jakieś dobre rozwiązania, aby to osiągnąć?

+0

Przyjąłem odpowiedź, ale nadal interesują mnie inne rozwiązania, które istnieją. – SpoonMeiser

Odpowiedz

2

mogę dać Ci szybkie i złe rozwiązanie:

drukuj tekst 8 razy, by go otoczyć, plus jeden więcej czasu dla tekstu wewnętrznej, jak ten

UUU 
UIU 
UUU 

U zewnętrzna kolor i ja dla wewnętrznego koloru.

+1

Rzeczywiście, cztery razy (rogi) jest wystarczająco dobre, jeśli kontur ma niewiele więcej niż jeden piksel. Dwa piksele również powinny być w porządku. To zależy od szybkości renderowania czcionek, jak złe jest to rozwiązanie. Użyłem go w XNA i jest tam dość szybki, przynajmniej jeśli tekst jest renderowany wsadowo. – OregonGhost

+0

dobra wskazówka! –

+0

Wystarczy tylko wyrenderować czcionkę. Możesz ponownie użyć renderowaną powierzchnię wiele razy za każdym razem, gdy zostanie pobrudzona na powierzchni docelowej. – SingleNegationElimination

3

Szybki i brudny sposobem byłoby, aby uczynić swój tekst kilka razy z kolorem konspektu, przesunięty o niewielkich ilościach na okręgu wokół położenia tekstu:

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

Edytuj: Doh byłaś szybciej ! Nie usunę jednak mojej odpowiedzi, ta sztuka ASCII jest po prostu zbyt dobra i zasługuje na życie!

Edytuj 2: Jak wspomniano o OregonGhost, możesz potrzebować więcej lub mniej kroków do renderowania konturu, w zależności od szerokości konturu.

+0

Zobacz mój komentarz w odpowiedzi Nicka D., który dotyczy również tego. – OregonGhost

Powiązane problemy