在pygame中显示中文
最近对python产生了兴趣,进而又对pygame产生了兴趣。我本身对游戏编程就很着迷,而pygame的简单又让我的着迷程度更进了一步。
做一个堂堂的中国人,自然希望在游戏中的文字是中文了,但是在游戏中显示中文似乎没有那么简单。经过一番研究,终于搞清楚怎样在pygame中显示中文了。
下面就以pygame文档中的一段代码为例,介绍如何显示中文。
# -*- coding: gbk -*-
import pygame
from pygame.locals import *
import local2utf8
def main():
# Initialise screen
pygame.init()
screen = pygame.display.set_mode((650, 150))
pygame.display.set_caption((u'基础 pygame 程序').encode('utf-8'))
# Fill background
background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((250, 250, 250))
# Display some text
#font = pygame.font.Font(None, 60) #原始代码,使用默认字体,不能显示中文
#font = pygame.font.Font('../FredGuo/simkai.ttf', 60) #正确,文件名可以包含路径
#font = pygame.font.Font('楷体', 60) #错误,name参数应该是字体的文件名
font = pygame.font.SysFont('楷体', 60) #正确,name参数应该是字体名,并且字符集要与系统的相同
text = font.render(u"Hello 我爱你", 1, (10, 10, 10)) #显示内容必须转换成Unicode,否则中文不能正常显示
textpos = text.get_rect()
textpos.center = background.get_rect().center
background.blit(text, textpos)
# Blit everything to the screen
screen.blit(background, (0, 0))
pygame.display.flip()
# Event loop
while 1:
for event in pygame.event.get():
if event.type == QUIT:
return
screen.blit(background, (0, 0))
pygame.display.flip()
if __name__ == '__main__': main()
代码中的注释说的已经很清楚了,在这里做一下简单的总结:
首先,使窗口的标题显示中文是很简单的,只要将字符集转换成utf-8就可以;
然后,我们说说稍微麻烦些的内容。在pygame中显示文字主要是用Font类,在创建类的实例时就需要指定字体。如果想使用pygame的默认字段只需将None传递Font就可以,但是这样不可以显示中文。
要使用Font显示中文主要有两种方法:一个是使用pygame.font.Font(name, size)来创建新的Font实例,其中name是字体的文件名(.ttf或.ttc文件),可能包含路径,这需要你知道字体文件的存放位置,方便起见,可以将文件copy到程序目录下。另一个方法是使用pygame.font.SysFont(name, size)方法创建Font的实例,它利用系统的可用字体,如果失败会默默地使用pygame的默认字体,其中name是字体的名称(楷体、宋体等);需要注意的是name的字符集要与系统的使用的字符集尽量一致,否则可能出现问题。
在使用Font的render()方法绘制中文时需要注意将字符集转换成Unicode,否则无法正常显示中文。
OK,That’s it。最后需要提醒一下,一定要注意自己文件使用的字符集,因为并不是在文件头指定什么字符集就会自动地用什么字符集保存文件。
分享到:
相关推荐
6. **图像和精灵**:Pygame支持加载和显示图像文件,这些图像可以被用作游戏中的角色或背景。`pygame.image.load()`函数用于加载图像,`pygame.sprite`模块则提供了精灵类,方便对多个图像进行组合和管理。 7. **...
2. **模块介绍**:详尽地讲解了PyGame中的各个模块,如`pygame.init()`用于初始化所有PyGame子系统,`pygame.display`用于管理游戏窗口,`pygame.event`处理游戏事件,`pygame.image`加载和绘制图片,`pygame.mixer`...
在Pygame中文文档中,你会找到每个接口的详细用法和参数说明。例如,`pygame.draw`模块提供了各种形状的绘制,如矩形、圆、线等,每个函数都有详细的参数解释,如颜色、边框宽度等。同时,文档也会介绍如何使用`...
它通过用户输入的拼音,利用pinyin2hanzi库进行转换,然后在Pygame环境中显示并选择相应的汉字。项目中涉及到的各个文件分别承担着不同的职责,如拼音处理、数据存储、图形界面等,共同构成了一个完整的Pygame中文...
在Python环境中,你可以通过pip命令轻松地安装Pygame。安装完成后,就可以开始编写你的第一个游戏程序了。 在基础部分,文档会讲解如何初始化Pygame系统,设置窗口大小,加载图像和音频资源。理解窗口的创建、显示...
8. 文本处理:Pygame的`pygame.font`模块允许你加载字体并创建文本Surface,以便在游戏界面上显示文字。 9. 图形精灵与精灵组:`pygame.sprite`模块提供精灵类,用于管理游戏中可移动或交互的对象。精灵组(Group)...
标题中的“官网中文文档”意味着该文档是pygame官方网站提供的关于pygame库的中文使用说明。 描述中提到文档是由谷歌翻译器翻译而来,翻译的准确性可能会受到影响,因此需要仔细阅读和理解。整理者是钱玉璞,QQ号为...
Pygame的中文和英文官方文档分别在《Pygame中文_v1.9.2.pdf》和《Pygame英文_v1.9.2.pdf》中提供了详细的使用指南和API参考。对于初学者来说,阅读这些文档可以帮助理解每个函数的用法和参数,从而更高效地进行游戏...
首先,我们来讨论一下在pygame中如何加载和显示图片。在pygame中,你可以使用`pygame.image.load()`函数来加载图片资源。例如,如果你有一个名为"player.png"的玩家飞机图片,你可以这样加载: ```python import ...
在"python用pygame飞机大战"中,首先会涉及pygame的基础导入和初始化。你需要引入pygame模块,然后通过`pygame.init()`函数启动pygame环境。游戏窗口的创建通常使用`pygame.display.set_mode()`函数,可以根据需求...
在Pygame中,有几个核心概念和模块是开发者必须了解的: 1. **初始化**: 开始使用Pygame时,首先要通过`pygame.init()`函数初始化所有子系统。这将确保你可以访问如窗口、图像和声音等功能。 2. **窗口与表面**:...
在Pygame的核心模块中,有几个关键的组件值得深入学习: 1. `pygame.init()`: 这是启动Pygame库的入口,初始化所有必需的服务。在开始编写任何游戏代码之前,都需要调用此函数。 2. `pygame.display`: 该模块负责...
以下是关于如何在Pygame中显示中文的详细步骤和相关知识点: 1. **字体文件**: - Pygame需要一个支持中文的TrueType字体(.ttf)文件来渲染中文字符。例如,在上述代码中,开发者使用了"simsum.ttf"字体文件,这...
在编写 Pygame 应用时,通常先调用 `pygame.init()` 初始化所有模块,然后创建窗口,处理事件,绘制图形,最后在主循环中调用 `pygame.display.flip()` 或 `pygame.display.update()` 更新屏幕。当程序结束时,调用 ...
这个压缩包“PyGame开发手册(中英文官方API).rar”包含了PyGame的官方英文文档和中文文档,是学习和参考PyGame API的重要资源。 首先,让我们深入了解一下PyGame的核心概念和主要模块: 1. **初始化**:PyGame的...
用Python和Pygame写游戏-从入门到精通 中文pdf版本 部分目录如下: 系统学习部分 用Python和Pygame写游戏-从入门到精通(1) Pygame的历史,安装Pygame,第一个Pygame脚本 用Python和Pygame写游戏-从入门到精通(2)...
在“pygame做的俄罗斯方块游戏”项目中,开发者利用pygame库实现了经典游戏——俄罗斯方块的完整功能。 首先,让我们了解一下pygame库的核心功能。pygame包括窗口管理器、事件处理、颜色管理、图像绘制、声音播放等...
pygame做的界面开发实例,目前有: 按钮:支持hover、隐藏、点击、中文显示、文字对齐方向 文本框:支持隐藏、点击、中文显示、文字对齐方向 编辑框:支持隐藏、点击、回退键删除、ctrl+v粘贴中文显示、文字对齐...
如果一切顺利,您应该会看到有关成功安装game_gui的消息,并将能够在python解释器的已安装软件包列表中找到pygame_gui(PyCharm在File-> Settings-> Project:project_name-下将它们显示为一个不错的列表。...