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学习笔记:字典的使用示例详解
Jun 13 Python
python通过apply使用元祖和列表调用函数实例
May 26 Python
深入浅析python中的多进程、多线程、协程
Jun 22 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 Python
程序员写Python时的5个坏习惯,你有几条?
Nov 26 Python
python中的单引号双引号区别知识点总结
Jun 23 Python
python pandas 时间日期的处理实现
Jul 30 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
python matplotlib库的基本使用
Sep 23 Python
用python发送微信消息
Dec 21 Python
对象析构函数__del__在Python中何时使用
Mar 22 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三层结构(上) 简单三层结构
2010/07/04 PHP
PHP详解ASCII码对照表与字符转换
2011/12/05 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
PHP实现合并discuz用户
2015/08/05 PHP
PHP常用的三种设计模式
2017/02/17 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
Python urlopen()函数 示例分享
2014/06/12 Python
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
python django事务transaction源码分析详解
2017/03/17 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Python如何用filter函数筛选数据
2020/03/05 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
生产部管理制度
2014/01/31 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
校园运动会广播稿
2015/08/19 职场文书
如何使用pdb进行Python调试
2021/06/30 Python