《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值、文本的颜色,以及背景的颜色。如果想要一个透明的背景,那么,直接在方法调用中漏掉背景颜色参数即可。

相关文章
|
11月前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
581 48
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
3月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
5月前
|
存储 算法 区块链
从零实现Python扫雷游戏:完整开发指南与深度解析
扫雷作为Windows经典游戏,承载了许多人的童年回忆。本文将详细介绍如何使用Python和Tkinter库从零开始构建一个功能完整的扫雷游戏,涵盖游戏设计、算法实现和界面开发的全过程。
421 1
|
11月前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
452 7
|
7月前
|
程序员 Python
使用CodeBuddy基于Pygame模块实现贪吃蛇游戏
在上班时间用 CodeBuddy 搞贪吃蛇游戏,一开始我还有点小愧疚,但现在回头想想,这简直是我打工人生活里的高光时刻!既能缓解压力,又能激发创造力、提升技术,妥妥的 “摸鱼赢家”!下次摸鱼,我准备再整点新花样,搞个俄罗斯方块啥的,美滋滋!
152 11
使用CodeBuddy基于Pygame模块实现贪吃蛇游戏
|
6月前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
705 1
|
6月前
|
存储 算法 数据可视化
用Python开发猜数字游戏:从零开始的手把手教程
猜数字游戏是编程入门经典项目,涵盖变量、循环、条件判断等核心概念。玩家通过输入猜测电脑生成的随机数,程序给出提示直至猜中。项目从基础实现到功能扩展,逐步提升难度,适合各阶段Python学习者。
437 0
|
11月前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
533 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
12月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
275 33

热门文章

最新文章

推荐镜像

更多