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系列之新版本导入httplib模块报ImportError解决方案
May 23 Python
Python对多属性的重复数据去重实例
Apr 18 Python
python实现Zabbix-API监控
Sep 17 Python
对python中不同模块(函数、类、变量)的调用详解
Jul 16 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
Sep 25 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
Python基础之字典常见操作经典实例详解
Feb 26 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
python简单实现插入排序实例代码
Dec 16 Python
使用python对excel表格处理的一些小功能
Jan 25 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
详解vuex的简单使用
2018/03/12 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
Python的函数嵌套的使用方法
2014/01/24 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
python list格式数据excel导出方法
2018/10/31 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
python解析多层json操作示例
2019/12/30 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
回门宴新郎答谢词
2014/01/12 职场文书
网络优化专员求职信
2014/05/04 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS