Главная » Статьи » Учебник: практика

Русская кодировка в Panda 3D
Панда — разработка буржуинская, поэтому по-умолчанию рассчитана на вывод текста всё на том же буржуинском языке в ASCII кодировке — т.е. латинскими символами, однако, заставить её писать на великом и могучем не составляет большого труда. Для начала нужно указать питону дефолтную кодировку utf-8. Если она не указана вначале файла программы в виде # -*- coding: utf_8 -*-, то можно назначить эту кодировку автоматически. Для этого нужно создать файл sitecustomize.py в директории где установлен python в нём написать следующее

import sys
sys.setdefaultencoding('utf8')
print "Encoding set to UTF8"

При старте питон ищет этот файл и запускает. В подтверждение в консоли вы должны увидеть Encodig set to UTF8.

Затем нужно указать Панде, что ей нобходимо так же использовать данную кодировку — в файле Config.prc пишем text-encoding utf8.
Шрифт используемый пандой по умолчанию так же не содержит русских символов, поэтому ниже доисываем text-default-font /c/WINDOWS/Fonts/arial.ttf

Можно назначить используемый шрифт и в самой программе:

myfont = loader.loadFont('arial.ttf')
text=OnscreenText(pos=(0.0, 0.0), font=myfont, text='проверка')
Категория: Учебник: практика | Добавил: ninth (25.03.2009)
Просмотров: 4007 | Комментарии: 6 | Рейтинг: 3.0/4
Всего комментариев: 6
1  
блин, почему так мало хороших сайтов осталось? этот, благо, вне конкуренции!

2  
Panda3D даёт написать русским шрифтом, но выводит в окне фигню всякую. sad

3  
Ты шрифт ей указал какой использовать?

4  
Да, указал. И кодировку тоже, но...

5  
а в Config.prc волшебную фразу вписал?

6  
Еще способ,простой:
указываем в файле программы,в начале
# coding: utf-8

Вывод текста:(пример)
myfont = loader.loadFont('arial.ttf')#или путь абсолютный,типа /ets/font/fon.ttf
self.title = TextNode('title')
self.title.setFont(myfont)
self.title.setEncoding(TextNode.EUtf8)
self.titleNodePath = aspect2d.attachNewNode(self.title)
self.titleNodePath.setScale(0.07)
self.titleNodePath.setPos(0.7, 0, -0.95)
self.title.setText("разраз тест")


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Онлайн всего: 1
Гостей: 1
Пользователей: 0