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回溯法实现数组全排列输出实例分析
Mar 17 Python
python更新列表的方法
Jul 28 Python
浅析Python 中整型对象存储的位置
May 16 Python
python调用Delphi写的Dll代码示例
Dec 05 Python
Windows下Anaconda2安装NLTK教程
Sep 19 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
python logging.info在终端没输出的解决
May 12 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
May 18 Python
基于python代码批量处理图片resize
Jun 04 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
python线程里哪种模块比较适合
Aug 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
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
PHP设置Cookie的HTTPONLY属性方法
2017/02/09 PHP
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
Python中字典和JSON互转操作实例
2015/01/19 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
Python 存取npy格式数据实例
2020/07/01 Python
python pymysql库的常用操作
2020/10/16 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
露营世界:Camping World
2017/02/02 全球购物
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
大学毕业生个人自荐信范文
2014/01/08 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
师范生见习自我总结
2015/06/23 职场文书
银行培训心得体会范文
2016/01/09 职场文书
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技