Python之pygame学习绘制文字制作滚动文字
pygame绘制文字
✕
今天来学习绘制文本内容,毕竟游戏中还是需要文字对玩家提示一些有用的信息。
字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件。
字体绘制基本分为以下几个步骤:
- 初始化字体模块
- pygame.init()
- 创建一个字体对象
- 可以从文件或者系统内字体选取
- pygame.font.SysFont('幼圆',50)
- 可以从文件或者系统内字体选取
- 绘制文本对象。
- a.render("测试字体",True,(255,0,0),(0,0,0))
- 屏幕绘制字体
- screen.blit(text,[jx.x,jx.y])
绘制字体是用的表面中blit函数来绘制图像:
blit(source,dest,area = None,special_flags = 0) - > Rect
在此Surface上绘制源Surface。可以使用dest参数定位绘图。Dest可以是表示源左上角的坐标对。Rect也可以作为目标传递,矩形的topleft角将用作blit的位置。目标矩形的大小不会影响blit。
也可以传递可选的区域矩形。这表示要绘制的源Surface的较小部分。
也就是我们需要绘制的元素,需要绘制的位置输入进去,可以接受矩形区域的位置参数。
这里还演示了获取文本宽高,让文本在屏幕居中滚动的效果。
import pygame
import pprint def main():
# 初始化pygame
pygame.init()
# 初始化字体模块
pygame.font.init()
# 如果字体模块已初始化,则为true
print('是否初始化',pygame.font.get_init())
# 获取默认字体的文件名
print('默认字体名',pygame.font.get_default_font())
# 获取所有可用的字体
pprint.pprint(pygame.font.get_fonts())
# 在系统上找到特定的字体
print('查找字体',pygame.font.match_font('arial'))
#从系统字体创建一个Font对象
# (名称,大小,粗体=假,斜体=假) - >字体
a = pygame.font.SysFont('幼圆',50) # 从文件或对象绘制文本
# pygame.font.Font('文件或对象',大小) # 在新Surface上绘制文本
# 显示内容、是否消除锯齿、字体颜色、背景颜色
text = a.render("gisoracle",True,(255,0,0),(0,0,0)) # 取消初始化字体模块
# pygame.font.quit()
# 设置屏幕
screen = pygame.display.set_mode((500,100))
# 设置矩形区域
ztx, zty, ztw, zth = text.get_rect()
# 绘制显示文字的矩形区域
jx = pygame.Rect(500,50-zth/2,ztw, zth) # 初始位置设置屏幕右边,并居住显示,2/1屏幕的高度 - 2/1字体的高度 向上移动是减
# 设置游戏时钟
clock = pygame.time.Clock()
while True:
# 文字滚动的频率
clock.tick(30)
# 重绘屏幕
screen.fill((0,0,0))
# 退出事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit(0)
# 文字从右向左移动
jx.x -= 5
# 如果字体全部移动出屏幕,则设置字体X轴位置为510, 500的话会出现的比较突然
if jx.x < 0 - ztw:
jx.x = 510
# 屏幕绘制字体,
screen.blit(text,[jx.x,jx.y])
# 更新屏幕显示
pygame.display.update() if __name__ == '__main__':
main()
来自:https://cloud.tencent.com/developer/article/1489726
Python之pygame学习绘制文字制作滚动文字的更多相关文章
- PyQt(Python+Qt)学习随笔:QScrollArea滚动区域layout布局的作用及设置方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 滚动区域可以设置布局,布局的作用其实与其他布局一样,就是在滚动区域大小调整时,滚动区域内的子部件跟随 ...
- PyQt(Python+Qt)学习随笔:QScrollArea滚动区域的scrollAreaWidgetContents、widget及setWidget等相关概念解释
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在Designer中设计将一个lable放到滚动区域上,使用PyUIC生成代码后,可以看到除了QSc ...
- PyQt(Python+Qt)学习随笔:QScrollArea滚动区域的alignment属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 滚动区域的alignment属性对应QScrollArea的alignment属性,用于控制滚动区域 ...
- 网页HTML代码:滚动文字的制作
本节笔者讲述HTML代码中比较特殊的标签,它能使网页中的文字滚动,并且可以控制其滚动的属性. 制作滚动文字 通过本章前面的学习,读者已经能够很好地控制各种段落文字的显示方式,不过无论怎么设置,文字都是 ...
- PyQt(Python+Qt)学习随笔:怎么在QScrollArea滚动区域中展示子部件的超长内容?
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 滚动区域可以针对部署在其上的子部件在不可见时进行滚动展示,但这种滚动展示仅只能展示内容层可见范围的子 ...
- PyQt(Python+Qt)学习随笔:QScrollArea的widgetResizable属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 滚动区域的widgetResizable属性用于控制滚动区域的内容部署层是否应跟随滚动区域的大小变化 ...
- PyQt(Python+Qt)学习随笔:QScrollArea的alignment属性不起作用的原因
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 Scroll Area滚动区域提供了一个呈现在其他部件上的可滚动区域视图,对应类为QScrollAr ...
- pygame学习笔记(3)——时间、事件、文字
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 1.运动速率 上节中,实现了一辆汽车在马路上由下到上行驶,并使用了pygame.time.delay(200 ...
- 第15.29节 PyQt(Python+Qt)入门学习:containers容器类部件QScrollArea滚动区域详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 Scroll Area提供了一个呈现在其他部件上的可滚动区域视图,滚动区域用于显示框架内的 ...
随机推荐
- VSCode - Beautify插件配置
注: 本文摘自 黑火巨雷 - 简书 1. 在工作目录下建立.jsbeautifyrc文件 官方文档 { "brace_style": "none,preserve-inl ...
- Docker部署Vue
在服务器上创建一个存放该文件的文件夹,将生成的文件上传到这个文件夹下. 上传的同级目录中创建Dockerfile以及nginx.conf两个文件. # 设置基础镜像 FROM nginx # 定义作者 ...
- Flask-SQLAlchemy操作指南
Flask-SQLAlchemy官方文档 from flask_sqlalchemy import SQLAlchemy app = Flask(__name__)app.config['SQLALC ...
- consul-服务发现、服务隔离、服务配置
一.服务发现 服务发现组件记录了(大规模)分布式系统中所有服务的信息,其它服务可以据此找到这些服务.DNS 就是一个简单的例子.当然,复杂系统的服务发现组件要提供更多的功能,例如,服务元数据存储.健康 ...
- Mysql修改binlog日志过期时间
1.临时生效 # 查看默认设置的过期时间 show variables like "%expire_logs%"; # 设置保留15天 set global expire_logs ...
- 走迷宫(bfs, 最短路)
Input 10 10 #S######.# ......#..# .#.##.##.# .#........ ##.##.#### ....#....# .#######.# ....#..... ...
- Microsoft Onenote shortcuts / Onenote快捷键大全
Onenote跟Libreoffice ,有道笔记比起来一个快捷键特别不太好用,就是Ctrl + Shift +v 并不会提供一个选择粘贴模式选项. 而在Onenote 中 Ctrl + Shift ...
- IDEA -01 -忽略指定文件夹 -防止加载Vue-cli执行"npm install"命令后的项目时卡死
问题描述 Vue的"npm install" 命令执行后,会生成一个很大的目录层次的"node_modules",文件十分繁多; idea加载这个项目下的文件夹 ...
- 你的一举一动,我可都看着!Linux超骚技巧三分钟Get
今天看到一个超级叼的linux命令,可以完整记录屏幕上的命令与输出结果. 有人问这有什么叼的,不就是保存历史操作记录吗?我看看日志也能看出来. 不不不,我要说的“完整记录”包括第几秒执行什么命令,就像 ...
- EF映射——从数据库更新实体
最近在做ITOO项目,由于更新了数据库,需要重新从数据库映射到实体,本来看过关于EF的学习资料,直接可以从数据库更新到实体,但这种小事也是有很多问题的,必须在更新的时候做好选择.下面分享一下如何从数据 ...