Международный ввод SDL или PyGame - PullRequest
5 голосов
/ 27 декабря 2008

Так в принципе, как обрабатывается незападный ввод в играх или приложениях SDL или OpenGL? Поиск в Google показывает, что http://sdl -im.csie.net / , но это больше не поддерживается и не доступно. Просто для просмотра страницы мне пришлось использовать кеш Google .

Чтобы уточнить, у меня нет каких-либо проблем с точки зрения приложения, отображающего текст на не западных языках для пользователей. Это решенная проблема. Есть много доступных шрифтов Unicode, и много разных способов для обработки текста в глифы, а затем на поверхности дисплея.

Я совершаю фол в противоположном направлении. Даже если бы моя программа могла безопасно обрабатывать текстовые данные в любой произвольной кодировке, у пользователей не было бы возможности фактически ввести свое имя, если бы оно содержало символ, для создания которого требуется более одного нажатия клавиши.

Ответы [ 3 ]

3 голосов
/ 26 марта 2009

Вас интересует SDL_EnableUNICODE(). Когда вы включаете перевод Unicode, вы можете использовать поле unicode структуры SDL_keysym, чтобы получить символ Unicode, основанный на набранном пользователем ключе.

Обычно я думаю, что когда вы вводите текст (например, пользователь фокусируется на текстовом поле), вы должны использовать поле Юникод, а не пытаться сделать перевод самостоятельно.

Вот что-то, что мы сделали в YATC. Не очень яркий пример того, как все должно быть сделано, но демонстрирует использование поля unicode.

1 голос
/ 30 декабря 2008

Обычно все просто используют юникод для текста, чтобы интернационализировать свои приложения.

Я не помню, чтобы SDL или OpenGL не реализовали ничего, что помешало бы вам реализовать международный ввод / вывод, за исключением того, что они не помогают в этом.

В OpenGL есть утилиты, которые вы можете использовать для визуализации со шрифтами .ttf.

0 голосов
/ 31 мая 2009

Похоже, что сейчас существует проект Google Summer Code для этой темы, как для X11 , так и для MacOS X

...