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正则表达式抓取成语网站
Nov 20 Python
Python中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
Python中functools模块函数解析
Mar 12 Python
python中文件变化监控示例(watchdog)
Oct 16 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
Python进程池Pool应用实例分析
Nov 27 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
pandas使用之宽表变窄表的实现
Apr 12 Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 Python
Python如何用re模块实现简易tokenizer
May 02 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
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
JavaScript中的return语句简单介绍
2015/12/07 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
python 运算符 供重载参考
2009/06/11 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Django进阶之CSRF的解决
2018/08/01 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
思想汇报格式
2014/01/05 职场文书
长安大学毕业生自我鉴定
2014/01/17 职场文书
优秀员工评语
2014/02/10 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
体育比赛口号
2014/06/09 职场文书
2014国庆节标语口号
2014/09/19 职场文书
认错检讨书
2014/10/02 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
防汛通知
2015/04/25 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis