【问题标题】:SDL or PyGame international inputSDL 或 PyGame 国际输入
【发布时间】:2008-12-27 03:23:33
【问题描述】:
那么基本上,在 SDL 或 OpenGL 游戏或应用程序中如何处理非西方输入?谷歌搜索它会显示http://sdl-im.csie.net/,但这似乎不再维护或可用。只是为了查看我必须使用Google cache 的页面。
澄清一下,在应用程序向用户显示非西方语言文本方面,我没有任何问题。这是一个已解决的问题。有许多可用的 unicode 字体,以及将文本处理成字形然后处理成显示表面的许多不同方法。
我朝相反的方向跑了一次犯规。即使我的程序可以安全地处理任意编码的文本数据,如果碰巧包含一个需要多次击键才能产生的字符,用户也无法实际输入他们的姓名。
【问题讨论】:
标签:
python
internationalization
sdl
【解决方案1】:
您对SDL_EnableUNICODE() 感兴趣。启用 unicode 翻译后,您可以使用SDL_keysym 结构的unicode 字段根据用户键入的密钥获取 unicode 字符。
一般来说,我认为每当您进行文本输入(例如,用户关注文本框)时,您应该使用 unicode 字段,而不是尝试自己进行翻译。
Here's 我们在 YATC 中所做的事情。并不是一个真正的例子来说明应该如何做,而是演示了unicode 字段的使用。
【解决方案2】:
通常每个人最终都会使用 unicode 作为文本来国际化他们的应用程序。
我不记得 SDL 或 OpenGL 都没有实现任何会阻止您实现国际输入/输出的东西,除非它们在这方面都没有帮助。
您可以使用 OpenGL 上的实用程序以 .ttf 字体进行渲染。