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实现QQ游戏大家来找茬辅助工具
Sep 14 Python
Python对象体系深入分析
Oct 28 Python
把MySQL表结构映射为Python中的对象的教程
Apr 07 Python
C#返回当前系统所有可用驱动器符号的方法
Apr 18 Python
python解析xml文件实例分析
May 27 Python
Python通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
使用pycharm生成代码模板的实例
May 23 Python
Python实现的各种常见分布算法示例
Dec 13 Python
Python实现的列表排序、反转操作示例
Mar 13 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 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(7) php 字符串相关应用
2010/03/05 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
用javascript控制iframe滚动的代码
2007/04/10 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
深入学习Python中的装饰器使用
2016/06/20 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
如何基于python生成list的所有的子集
2019/11/11 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
幼师自荐信
2013/10/26 职场文书
新三好学生主要事迹
2014/01/23 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
大学英语专业求职信
2014/06/21 职场文书
KTV门卫岗位职责
2014/10/09 职场文书