Python pygame绘制文字制作滚动文字过程解析
作者:gisoracle 时间:2022-06-10 13:21:11
这篇文章主要介绍了Python 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://www.cnblogs.com/gisoracle/p/12023438.html
标签:Python,pygame,绘制,滚动,文字
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python切换hosts文件代码示例
2023-07-19 15:41:43
sqlserver 查询数据库大小的方法
2012-08-21 10:22:10
python实现飞机大战
2021-03-05 04:19:26
![](https://img.aspxhome.com/file/2023/8/97388_0s.jpg)
python单线程文件传输的实例(C/S)
2023-04-07 22:45:48
![](https://img.aspxhome.com/file/2023/0/76050_0s.jpg)
Python2中的raw_input() 与 input()
2022-05-16 07:42:06
Python matplotlib可视化绘图详解
2021-11-11 12:03:26
![](https://img.aspxhome.com/file/2023/0/78480_0s.png)
在 Python 中使用 MQTT的方法
2022-01-26 12:32:48
![](https://img.aspxhome.com/file/2023/5/90515_0s.png)
如何利用SQL Server 2005中的模板参数
2009-01-23 15:02:00
教你用Python下载抖音无水印视频
2022-11-18 06:08:42
![](https://img.aspxhome.com/file/2023/6/102766_0s.png)
番茄的js表单验证类
2008-01-07 13:53:00
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2023-11-08 23:30:21
![](https://img.aspxhome.com/file/2023/4/104824_0s.png)
Python中无限循环需要什么条件
2023-03-28 09:05:14
Python读取csv文件分隔符设置方法
2021-10-22 16:59:47
ASP 下载时重命名已上传文件的新下载文件名的实现代码
2012-11-30 20:33:45
Python 实现自动获取种子磁力链接方式
2022-12-19 16:17:31
![](https://img.aspxhome.com/file/2023/3/98963_0s.jpg)
Python中的zipfile模块使用详解
2023-02-26 22:44:37
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2021-05-15 16:25:58
Python爬虫如何应对Cloudflare邮箱加密
2023-10-16 22:25:35
python re正则表达式模块(Regular Expression)
2021-01-26 20:22:26
Python中的pandas库简介及其使用教程
2022-02-10 17:11:12