少儿编程:python趣味编程第二课,如何在pygame中写文字
python趣味编程第二课:本文仅针对8-16岁的青少年,所以流程是按如何去教好中小学生走的,并不适合成人找工作学习,因为进度也是按照青少年走的
大家好,我是C大叔,上一篇文章已经跟大家介绍了一款开发工具及如何在pygame屏幕中画图片,本节课将继续上节课程,在pygame屏幕中显示文字。
流程如下:
- 代码导入
- 加载字体
- 写字
- 显示文字
1.代码导入
同样是复制下面代码到新建的python项目中
import pygame
import sys
pygame.init()
screen = pygame.display.set_mode((1200, 600))
screen.fill((200, 200, 200))
pygame.display.set_caption('写文字')
#加载字体
#写字
#显示文字
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
建一个名为images的文件夹,下载一种字体,复制进文件夹,本文字体名称为 font01.ttf
2.加载字体
加载字体使用的方法为pygame.font.Font(a,b),参数为需要加载的字体,参数b为字体大小
可在导入的代码中“#加载字体”下面写下如下代码:
font01 = pygame.font.Font("images/font01.ttf",100)
"images/font01.ttf"为需要加载的字体位置,100是字体的大小
3.写字
假如我要写“明天是世界末日”这几个字,需要使用写字的方法:render(a,b,c),一共有三个参数,a表示的是要写的字,b有两个值(要么True,要么False,如果是True字写出来比较光滑,是False的话字写出来边缘会呈现锯齿,像牙齿咬合面一样不平), c表示的是RGB颜色。
RGB颜色,R表示的是red(红色),G表示的是green(绿色),B表示的是blue(蓝色),计算机所有的颜色都是由这三种颜色组成。它们的值从0-255不等,数值越大代表这种颜色越亮,例如(255,0,0)就表示红色最大,绿色跟蓝色都没有,显示的自然是红色,同样的,如果是(0,255,0)则代表是绿色。如果是(255,255,0)呢?就是两种颜色组成的颜色了,至于是什么颜色,稍后学会后,大家可以试试。
假设我们现在要写“明天是世界末日!”这几个字该怎么写呢?
在“#写字”下面写上下面代码:
surface1 = font01.render("明天是世界末日!", True, (255,0,0))
表示的是写“明天是世界末日!”这几个字,并且边缘光滑,颜色为红色。
但是小伙伴们会发现一个问题,运行后并没有出现这几个字啊,明天不是世界末日就不显示了嘛?当然不是啦,那是因为我们还没让它展现自我。
4.显示文字
还是用我们上节课所学内容blit()方法,这里是把文字转换成了图片,如果忘了怎么使用的小伙伴需要再重新复习第一课哦!
完整代码如下:
import pygame
import sys
pygame.init()
screen = pygame.display.set_mode((1200, 600))
screen.fill((200, 200, 200))
pygame.display.set_caption('合金弹头')
#加载字体
font01 = pygame.font.Font("images/font01.ttf", 100)
#写字
surface1 = font01.render("明天是世界末日!", True, (255,0,0))
#显示文字
screen.blit(surface1, (200, 100))
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
如果明天是世界末日,你会做些什么呢?关注WX公众号:noip-edu,来跟我聊聊吧!
少儿编程:python趣味编程第二课,如何在pygame中写文字的更多相关文章
- 第九章:Python高级编程-Python socket编程
第九章:Python高级编程-Python socket编程 Python3高级核心技术97讲 笔记 9.1 弄懂HTTP.Socket.TCP这几个概念 Socket为我们封装好了协议 9.2 cl ...
- 少儿编程:python趣味编程第一课
本文仅针对8-16岁的青少年,所以流程是按如何去教好中小学生走的,并不适合成人找工作学习,因为进度也是按照青少年走的 大家好,我是C大叔,从事少儿编程行业三年有余(2016年从事少儿编程行业,少儿编程 ...
- Python学习,第二课 - 字符编码
关于字符编码 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill) ASCII(American Standard Code for Information Inte ...
- Python学习笔记 第二课 循环
>>> movies=["The Holy Grail", 1975, "The Life of Brian", 1979, "Th ...
- python,使用百度api实现复制截图中的文字
百度云文字识别技术文档: 跳转 第三方模块安装: pip install baidu-aip pip install Pillow pip install keyboard pip install p ...
- 吴裕雄--天生自然python学习笔记:python文档操作批量替换 Word 文件中的文字
我们经常会遇到在不同的 Word 文件中的需要做相同的文字替换,若是一个一个 文件操作,会花费大量时间 . 本节案例可以找出指定目录中的所有 Word 文件(包含 子目录),并对每一个文件进行指定的文 ...
- 【python游戏编程之旅】第九篇---嗷大喵快跑小游戏开发实例
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 前几期博客我们一起学习了,pygame中的冲突检测技术以及一些常用的数据结构. 这次我们来一起做一个简单的酷 ...
- 【python游戏编程之旅】第四篇---pygame中加载位图与常用的数学函数。
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇博客中,我们学习了pygame事件与设备轮询.http://www.cnblogs.com/msxh ...
- 【python游戏编程之旅】第三篇---pygame事件与设备轮询
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇博客中,我们学习了pygame中的IO.数据http://www.cnblogs.com/msxh/ ...
随机推荐
- Mybatis框架-CRUD
1 2 3 传统dao开发实现CRUD 3.1 传统dao开发实现crud 使用 Mybatis 开发 Dao,通常有两个方法,即原始 Dao开发方式和 Mapper 接口代理开发方式.而 ...
- springboot 配置本地文件映射路径
@Configuration public class MyBlogWebMvcConfigurer extends WebMvcConfigurerAdapter { @Autowired priv ...
- leetcode27之移除元素
题目描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改 ...
- Windows下6款实用软件(强烈推荐!)
Windows下6款实用软件 1.notepads Notepads作为一款编辑器,美观.轻量,功能强大,支持多标签页.Markdown.日常文本编辑.查看,Notepads轻松胜任,如果厌烦了Win ...
- Python3-queue模块-同步队列
Python3中的queue模块实现多生产者,多消费者队列,特别适用于多个线程间的信息的安全交换,主要有三个类 queue.Queue(maxsize=0) 构造一个FIFO(先进先出)的队列 que ...
- Unicode 环境下的字符串的操作
1.CString转int int i _ttoi( str ); 2.保存中文和读取中文: CSdtioFile在Unicode环境下默认是不支持中文的,若需要存储和读取中文需要设置代码页: #in ...
- postman不能启动的问题解决
1.postman启动不了,启动时提示“postman resolving transporter buffer”,不能正常启动 第一步,删除:在chrome-更多工具-扩展程序里面删除了postma ...
- Redis系列(八):发布与订阅
Redis的发布与订阅,有点类似于消息队列,发送者往频道发送消息,频道的订阅者接收消息. 1. 发布与订阅示例 首先,在本机开启第1个Redis客户端,执行如下命令订阅blog.redis频道: SU ...
- 键盘鼠标(PS2)模拟器驱动及Demo
详情 KeyboardMouseSimulateDriver 问题描述: 鼠标相对移动存在不正确性,绝对移动没正确性. 基于于Thinkpad E460上的开发及测试. 不支持HID设备.
- java语言进阶(六)_线程_同步
第一章 多线程 想要设计一个程序,边打游戏边听歌,怎么设计? 要解决上述问题,需要使用多进程或者多线程来解决. 1.1 并发与并行 并发:指两个或多个事件在同一个时间段内发生. 并行:指两个或多个事件 ...