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

本节书摘来自异步社区《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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PythonPygame游戏-从入门到精通 中文pdf版本 部分目录如下: 系统学习部分 用PythonPygame游戏-从入门到精通(1) Pygame的历史,安装Pygame,第一个Pygame脚本 用PythonPygame游戏-从入门到精通(2) 理解游戏中的事件 用PythonPygame游戏-从入门到精通(3) Pygmae的屏幕显示 用PythonPygame游戏-从入门到精通(4) 使用字体模块,Pygame 的错误处理 用PythonPygame游戏-从入门到精通(5) 像素和颜色 用PythonPygame游戏-从入门到精通(6) 使用图像,理解Surface 用PythonPygame游戏-从入门到精通(7) 绘制图形 用PythonPygame游戏-从入门到精通(8) 产生动画和控制帧率 用PythonPygame游戏-从入门到精通(9) 向量基础 用PythonPygame游戏-从入门到精通(10) 用户输入 用PythonPygame游戏-从入门到精通(11) 使用鼠标控制精灵。一个在鼠标旁不断游动的小鱼的例程。 用PythonPygame游戏-从入门到精通(12) 手柄操作,暂无 用PythonPygame游戏-从入门到精通(13) AI初探 用PythonPygame游戏-从入门到精通(14) 状态机 用PythonPygame游戏-从入门到精通(15) 开始AI编程 用PythonPygame游戏-从入门到精通(16) AI编程总结。一个蚂蚁采集食物,攻击蜘蛛的系统模拟例程。 用PythonPygame游戏-从入门到精通(17) 3D基础 用PythonPygame游戏-从入门到精通(18) 3D中的概念 用PythonPygame游戏-从入门到精通(19) 第一个 3D 程序(伪)。一个空间中的3D立方体的例程。 用PythonPygame游戏-从入门到精通(20) 声音原理 用PythonPygame游戏-从入门到精通(21) 使用声音,播放音效。一个重力模拟金属球碰撞的例程。 用PythonPygame游戏-从入门到精通(22) 播放长时间的背景音乐。一个建议播放器的例程。 额外提高部分 用PythonPygame游戏-从入门到精通(py2exe编) 使用py2exe将pygame脚本转换为exe可执行文件 用PythonPygame游戏-从入门到精通(Sprite篇) 介绍Pygame中不是必须但又很重要的Sprite模块,游戏中的角色实现,大多都要靠它。 实践部分 用PythonPygame游戏-从入门到精通(实战一:涂鸦画板1) 一个类似于Windows画图板的小玩意儿,精简了很多功能但是有更帅的笔刷。这一次主要是将笔刷的实现。 用PythonPygame游戏-从入门到精通(实战一:涂鸦画板2) 加上了按钮,我们的涂鸦画板可以用了! 用PythonPygame游戏-从入门到精通(实战二:恶搞俄罗斯方块1) 俄罗斯方块,却有不是普通的俄罗斯方块。 用PythonPygame游戏-从入门到精通(实战二:恶搞俄罗斯方块2) 代码构架 用PythonPygame游戏-从入门到精通(实战二:恶搞俄罗斯方块3) 实现说明 用PythonPygame游戏-从入门到精通(实战二:恶搞俄罗斯方块4) 完成,提供下载 用PythonPygame游戏-从入门到精通(实战三:植物大战僵尸1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值