Python pygame绘制文字制作滚动文字过程解析


Posted in Python onDecember 12, 2019

这篇文章主要介绍了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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用线程封装的一个简单定时器类实例
May 16 Python
python实现判断数组是否包含指定元素的方法
Jul 15 Python
python+Django+apache的配置方法详解
Jun 01 Python
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
python简单商城购物车实例代码
Mar 15 Python
学习python可以干什么
Feb 26 Python
django之对FileField字段的upload_to的设定方法
Jul 28 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
TensorFlow查看输入节点和输出节点名称方式
Jan 04 Python
django 扩展user用户字段inlines方式
Mar 30 Python
Python如何执行系统命令
Sep 23 Python
python基础之文件操作
Oct 24 Python
详解python 中in 的 用法
Dec 12 #Python
python调用c++返回带成员指针的类指针实例
Dec 12 #Python
在Python中实现函数重载的示例代码
Dec 12 #Python
django框架F&amp;Q 聚合与分组操作示例
Dec 12 #Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 #Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 #Python
python3中pip3安装出错,找不到SSL的解决方式
Dec 12 #Python
You might like
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
vue组件实例解析
2017/01/10 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
对vue事件的延迟执行实例讲解
2018/08/28 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
python通过百度地图API获取某地址的经纬度详解
2018/01/28 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
python获取整个网页源码的方法
2020/08/03 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
优秀学生干部个人的自我评价
2013/10/04 职场文书
医院信息公开实施方案
2014/05/09 职场文书
保安辞职信范文
2015/02/28 职场文书
职位证明模板
2015/06/23 职场文书
给校长的建议书范文
2015/09/14 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
JavaScript实现登录窗体
2021/06/22 Javascript
代码复现python目标检测yolo3详解预测
2022/05/06 Python