PyGame

2009-03-20 13 views
8

में यूनिकोड फोंट मैं Pygame में चीनी वर्ण कैसे प्रदर्शित कर सकता हूं? और इस उद्देश्य के लिए उपयोग करने के लिए एक अच्छा मुफ्त/लिबर फ़ॉन्ट क्या है?PyGame

उत्तर

0

जहां तक ​​मुझे पता है - और मैंने इसे स्वयं नहीं किया है - PyGame को केवल तब काम करना चाहिए जब आप इसे यूनिकोड स्ट्रिंग को चीनी वर्णों, जैसे कि पास करते हैं। यू '\ u4e2d \ u56fd'।

कुछ उपयुक्त खुले लाइसेंस फोंट के लिए http://www.unifont.org/fontguide/ के तहत 'पूर्वी एशिया' देखें।

7

पायगैम प्रतिपादन के लिए SDL_ttf का उपयोग करता है, इसलिए आपको रेंडरिंग के रूप में ठीक आकार में होना चाहिए।

unifont.org स्क्रिप्ट की एक श्रृंखला के लिए ओपन-सोर्स फोंट पर कुछ व्यापक संसाधन प्रतीत होता है।

मैंने साइबरबिट पैन-यूनिकोड फ़ॉन्ट को पकड़ लिया और निर्बाध ttf निकाला।

# -*- 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() 

जब तक आप सिर्फ यूनिकोड पाठ प्रदर्शित कर रहे हैं, तो आप शानदार आकार में होना चाहिए: folowing जो एक Windows Vista होम बेसिक और अजगर 2.6 है 'मेरी मशीन पर काम किया'। यदि, हालांकि, आप वास्तव में उपयोगकर्ता से यूनिकोड इनपुट पढ़ना चाहते हैं, तो स्थिति अधिक अंधकारमय है। Pygame के किसी भी प्रकार का कोई इनपुट तरीका नहीं है।

+0

Pygame _does_ के लिए घटनाओं के लिए प्राथमिक समर्थन है, जो - अगर मुझे गलत नहीं है - इसमें महत्वपूर्ण स्ट्रोक ईवेंट शामिल हैं। यह 'इनपुट()' को कॉल करने के रूप में सीधा नहीं है, लेकिन इसके ऊपर यूआई इनपुट तत्व बनाना संभव होना चाहिए। 'Pygame.scrap' के माध्यम से काटने और पेस्ट करने के लिए भी समर्थन लगता है। – SwiftsNamesake

+0

@SwiftsNamesake, मैं नहीं कह रहा हूं कि pygame इनपुट नहीं पढ़ सकता है; बल्कि, मैं कह रहा हूं कि इसमें ओएस या किसी अन्य [इनपुट विधियों] (http://en.wikipedia.org/wiki/Input_method) का उपयोग करने का कोई मानक तरीका नहीं है, मुख्य कोड के अनुक्रमों से मैपिंग (कहना, यूनिकोड) एक विशेष भाषा के लिए लिपि। यह मुख्य रूप से चीनी या अरबी जैसे अंग्रेजी के अलावा इनपुट भाषाओं के लिए एक चिंता है। – SingleNegationElimination

+0

मैं इसे समझता हूं। मैं सिर्फ यह स्पष्ट करना चाहता था कि स्वयं को बताए गए विशेषताओं को लागू करके इस मुद्दे को बाधित करने के तरीके हैं। – SwiftsNamesake

संबंधित मुद्दे