2009-03-20 11 views

Respuesta

0

Por lo que yo sé, y yo mismo no lo he probado, PyGame debería funcionar cuando le pasa una cadena Unicode que contiene caracteres chinos, por ej. u '\ u4e2d \ u56fd'.

Consulte 'East Asia' en http://www.unifont.org/fontguide/ para obtener bastantes fuentes adecuadas de licencia abierta.

7

pygame usa SDL_ttf para renderizar, por lo que debe estar en buena forma a medida que se va renderizando.

unifont.org parece que tiene algunos recursos extensos en fuentes de código abierto para una variedad de secuencias de comandos.

Agarré la fuente pan-unicode de Cyberbit y extraje el ttf adjunto. El folowing 'trabajó en mi máquina', que es un equipo con Windows Vista Home Basic y Python 2.6:

# -*- coding: utf-8 -*- 

import pygame, sys 


unistr = u"黒澤 明" 
pygame.font.init() 
srf = pygame.display.set_mode((640,480)) 
f = pygame.font.Font("Cyberbit.ttf",20) 
srf.blit(f.render(unistr,True,(0,0,0)),(0,0)) 
pygame.display.flip() 

while True: 
    srf.blit(f.render(unistr,True,(255,255,255)),(0,0)) 
    for e in pygame.event.get(): 
     if e.type == pygame.QUIT: 
      pygame.quit() 
      sys.exit() 

Mientras estás mostrar texto Unicode, que debe estar en muy buena forma. Sin embargo, si desea leer la entrada de Unicode del usuario, la situación es mucho más sombría. Pygame no tiene métodos de entrada de ningún tipo.

+0

Pygame _does_ tiene soporte rudimentario para eventos, que, si no me equivoco, incluye eventos clave de trazo. No es tan sencillo como llamar a 'input()', pero debería ser posible construir elementos de entrada de IU además de eso. También parece haber soporte para cortar y pegar a través de 'pygame.scrap'. – SwiftsNamesake

+0

@SwiftsNamesake, no estoy diciendo que pygame no pueda leer la entrada; más bien, digo que no tiene una forma estándar de usar el sistema operativo o cualquier otro [método de entrada] (http://en.wikipedia.org/wiki/Input_method), las asignaciones de secuencias de códigos clave para (digamos, unicode)) script para un idioma en particular. Esta es una preocupación principalmente para los idiomas de entrada que no sean el inglés, como el chino o el árabe. – SingleNegationElimination

+0

Entiendo eso. Solo quería aclarar que hay formas de eludir este problema implementando dichas características usted mismo. – SwiftsNamesake