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复制文件代码实现
Dec 23 Python
python修改字典内key对应值的方法
Jul 11 Python
Python正规则表达式学习指南
Aug 02 Python
python绘制直线的方法
Jun 30 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
对python产生随机的二维数组实例详解
Dec 13 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
Windows下Sqlmap环境安装教程详解
Aug 04 Python
python库sklearn常用操作
Aug 23 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
jquery与prototype框架的详细对比
2013/11/21 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
js实现日历的简单算法
2017/01/24 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
Nuxt的路由动画效果案例
2020/11/06 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
Python处理CSV与List的转换方法
2018/04/19 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
Python列表list操作相关知识小结
2020/01/29 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
合作意向书模板
2014/03/31 职场文书
优秀员工评优方案
2014/06/13 职场文书
公司周年庆活动方案
2014/08/25 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
工商局个人工作总结
2015/03/03 职场文书
SpringBoot 集成Redis 过程
2021/06/02 Redis
Python中的xlrd模块使用整理
2021/06/15 Python