《Python和Pygame游戏开发指南》——2.20 字体

  1. 云栖社区>
  2. 博客>
  3. 正文

《Python和Pygame游戏开发指南》——2.20 字体

异步社区 2017-05-02 14:15:00 浏览1314
展开阅读全文

本节书摘来自异步社区《Python和Pygame游戏开发指南》一书中的第2章,第2.20节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.20 字体

如果想要将文本绘制到屏幕上,也可以编写几个pygame.draw.line()调用,来绘制出每个字母的线条。然而,录入所有那些pygame.draw.line()调用并计算出所有的XY 坐标,这将会是一件令人头疼的事情,并且看上去效果也不会很好,如图2-12所示。


screenshot

上面的这条消息,可能需要调用pygame.draw. line()函数41次才能产生。相反,Pygame提供了一些非常简单的函数用于字体和文本创建。如下是使用Pygame的字体函数的一个较小的Hello World程序。在IDLE文件编辑器中输入代码,并且将其保存为fonttext.py 。


screenshot

让文本显示到屏幕上,一共有6个步骤。

1.创建一个pygame.font.Font对象(如第12行所示)。

2.创建一个Surface对象,通过调用Font对象的render()方法,将文本绘制于其上(如第13行所示)。

3.通过调用Surface对象的get_rect()方法,从Surface对象创建一个Rect对象(如第14行所示)。这个Rect对象将具有为文本而设置的正确的宽度和高度,但是,其top和left属性将为0。

4.通过修改Rect对象的属性之一,来设置其位置。在第15行,我们将Rect对象的中心设置为200, 150。

5.将带有文本的Surface对象复制到pygame.display.set_mode()所返回的Surface对象上(如第19行所示)。

6.调用pygame.display.update(),使显示Surface出现在屏幕上(如第24行所示)。

pygame.font.Font()构造函数的参数是表示所要使用的字体文件的一个字符串,以及表示字体大小的一个整数(以点为单位,这和字处理程序度量字体大小的单位相同)。在第12行,我们传入了'freesansbold.ttf'(这是Pygame自带的一种字体)和整数32(字体大小为32点)。

参见http://invpy.com/usingotherfonts 了解使用其他字体的相关信息。

render()方法调用的参数是所要显示的文本的一个字符串,指定是否想要抗锯齿(本章稍后介绍)的一个Boolean值、文本的颜色,以及背景的颜色。如果想要一个透明的背景,那么,直接在方法调用中漏掉背景颜色参数即可。

网友评论

登录后评论
0/500
评论
异步社区
+ 关注