Python pygame绘制文字制作滚动文字过程解析
作者:gisoracle 发布时间:2022-06-10 13:21:11
标签:Python,pygame,绘制,滚动,文字
这篇文章主要介绍了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


猜你喜欢
- 一、 使用Springboot+Jpa实现对mysql数据库的增删改查和分页功能JPA是Java Persistence API的简称,中文
- 简单用py写了一个贪吃蛇游戏,有单人、双人模式,比较简单,适合初学者练手。基本上每行重要的语句都有注释,做了什么事一目了然这里先介绍单人模式
- 字典概述字典是一个映射集合,他储存的是键值对,通过键来查找值,而不是索引字典定义通过大括号{}与键值对来表示一个字典 字典名=
- 本文汇总了在Access数据库安全问题中最为常见的问题来做出解答。问:什么是Microsoft Access 工作组,怎样创建工作组信息文件
- 需要先装pywin32,windows下调用winapi的接口## _*_ coding:UTF-8 _*___author__ =
- 初学python,抓取搜狗微信公众号文章存入mysqlmysql表:代码:import requestsimport jsonimport
- 前言本文通过示例给大家介绍了python嵌套字典比较值,取值,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。示例代码#取值
- python闭包关于闭包, 很多blog中都这样解释 :对于一个嵌套定义的函数,外层的函数的返回值是内层函数,而在内层函数中又引用了外层函数
- 为什么说浮点数缺乏精确性?在开始本文之前,让我们先来谈谈浮点数为什么缺乏精确性的问题,其实这不是Python的问题,而是实数的无限精度跟计算
- 变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存
- 1 create table test(coltest varchar(20))2 实现这一功能 的 sql 语句 s
- function rss_locale_date ($fmt, $ts, $addTZOffset&
- scrapy框架只能爬取静态网站。如需爬取 * 站,需要结合着selenium进行js的渲染,才能获取到动态加载的数据。如何通过seleni
- use 数据库 go EXEC sp_changeobjectowner ‘原表的所有者.表名',现在的所有者例如: exec sp
- 初入深度学习,就遇到了困难,一直安装不了tensorflow和keras库!!!真是让人着急!!!在经过无数次尝试,看了无数篇博客之后,终于
- 最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。
- 本文实例展示了Python Tkinter实现简单布局的方法,示例中备有较为详尽的注释,便于读者理解。分享给大家供大家参考之用。具体如下:#
- 应用目标:制作文字特效 应用软件:Dreamweaver MX操作难度:★★☆☆☆我们常用的网页制作工具Dreamweaver MX不仅可以
- 本文实例讲述了Python3.5内置模块之time与datetime模块用法。分享给大家供大家参考,具体如下:1、模块的分类a、标准库(Py
- jsonp方式一:指定返回方法# 后端def view(request): callback = request.GET.get