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的Flask框架实现视频的流媒体传输
Mar 31 Python
Python抓取百度查询结果的方法
Jul 08 Python
在Django的视图中使用数据库查询的方法
Jul 16 Python
python中hashlib模块用法示例
Oct 30 Python
pandas.DataFrame选取/排除特定行的方法
Jul 03 Python
详解如何设置Python环境变量?
May 13 Python
python使用rsa非对称加密过程解析
Dec 28 Python
pytorch 模拟关系拟合——回归实例
Jan 14 Python
python 链接sqlserver 写接口实例
Mar 11 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
在django中form的label和verbose name的区别说明
May 20 Python
python 制作一个gui界面的翻译工具
May 14 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
html中select语句读取mysql表中内容
2006/10/09 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
PDO::quote讲解
2019/01/29 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
js 内存释放问题
2010/04/25 Javascript
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
vue实现动态数据绑定
2017/04/28 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
Python牛刀小试密码爆破
2011/02/03 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
基于python实现从尾到头打印链表
2019/11/02 Python
Python argparse模块应用实例解析
2019/11/15 Python
Python self用法详解
2020/11/28 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
环卫工人先进事迹材料
2014/06/02 职场文书
志愿者宣传口号
2014/06/17 职场文书
工作检讨书怎么写
2014/10/10 职场文书
写给老师的感谢信
2015/01/20 职场文书
招商银行收入证明
2015/06/17 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
Android中View.post和Handler.post的关系
2022/06/05 Java/Android