2009-07-10 25 views
6

Estoy escribiendo un juego en python con pygame y necesito presentar texto en la pantalla.¿Cuál es una buena manera de representar las fuentes delineadas?

Quiero representar este texto en un color con un contorno, para no tener que preocuparme sobre el tipo de fondo sobre el que se muestra el texto.

pygame.font no parece ofrecer soporte para hacer este tipo de cosas directamente, y me pregunto si alguien tiene alguna buena solución para lograr esto?

+0

He aceptado una respuesta, pero sigo interesado en cualquier otra solución que exista. – SpoonMeiser

Respuesta

2

te puede dar una rápida y mal solución:

imprimir el texto 8 veces, a rodearlo, más una vez más por el texto interno, como este

UUU 
UIU 
UUU 

U para exterior color y yo para el color interno.

+1

En realidad, cuatro veces (las esquinas) es lo suficientemente bueno si el contorno no es mucho más que un píxel de ancho. Dos píxeles también deberían estar bien. Depende de la velocidad del renderizador de fuentes qué mala es realmente la solución. Lo usé en XNA y es bastante rápido allí, al menos si el texto es de procesamiento por lotes. – OregonGhost

+0

¡buen consejo! –

+0

solo necesita renderizar la fuente una vez. Puede reutilizar la superficie renderizada varias veces por cada vez que se aplana a la superficie objetivo. – SingleNegationElimination

3

Una manera rápida y sucia sería la de hacer que el texto varias veces con el color del contorno, desplazado por pequeñas cantidades en un círculo alrededor de la posición del texto:

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

Editar: Doh has estado Más rápido ! Aunque no eliminaré mi respuesta, ¡este arte ASCII es demasiado bueno y merece vivir!

Editar 2: Como se mencionó en OregonGhost, es posible que necesite más o menos pasos para la representación del contorno, según el ancho de su contorno.

+0

Vea mi comentario en la respuesta de Nick D., que también se aplica a esta. – OregonGhost

Cuestiones relacionadas