2009-03-20 5 views

risposta

0

Per quanto ne so, e non l'ho ancora provato, PyGame dovrebbe funzionare solo quando si passa una stringa Unicode contenente caratteri cinesi, ad es. u '\ u4e2d \ u56fd'.

Vedere "Asia orientale" sotto http://www.unifont.org/fontguide/ per alcuni tipi di carattere a licenza aperta.

7

pygame utilizza SDL_ttf per il rendering, quindi si dovrebbe essere in forma fine come il rendering va.

unifont.org sembra avere alcune risorse estese sui caratteri Open-Source per una serie di script.

Ho afferrato il carattere di pan-unicode Cyberbit ed estratto il file ttf incluso. Il folowing 'lavorato sulla mia macchina', che è un Windows Vista Home Basic e 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() 

Finché si sta solo la visualizzazione del testo Unicode, si dovrebbe essere in forma fantastica. Se, tuttavia, si desidera effettivamente leggere l'input unicode dall'utente, la situazione è molto più desolante. Pygame non ha metodi di input di alcun tipo.

+0

Pygame _segue_ ha un supporto rudimentale per gli eventi che, se non erro, includono eventi di ictus chiave. Non è così semplice come chiamare 'input()', ma dovrebbe essere possibile costruire elementi di input dell'interfaccia utente. Sembra anche che ci sia il supporto per tagliare e incollare tramite 'pygame.scrap'. – SwiftsNamesake

+0

@SwiftsNamesake, non sto dicendo che pygame non possa leggere input; piuttosto, sto dicendo che non ha un modo standard di usare il sistema operativo o altri [metodi di input] (http://en.wikipedia.org/wiki/Input_method), i mapping da sequenze di codici chiave a (per esempio, unicode) script per una lingua specifica. Questa è una preoccupazione principalmente per le lingue di input diverse dall'inglese, come il cinese o l'arabo. – SingleNegationElimination

+0

Lo capisco. Volevo solo chiarire che ci sono modi per aggirare questo problema implementando le funzionalità di te stesso. – SwiftsNamesake