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程序的方法
Apr 21 Python
netbeans7安装python插件的方法图解
Dec 24 Python
python获得图片base64编码示例
Jan 16 Python
Python3读取文件常用方法实例分析
May 22 Python
Python简单网络编程示例【客户端与服务端】
May 26 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
查看python下OpenCV版本的方法
Aug 03 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
Django 拆分model和view的实现方法
Aug 16 Python
Python列表list常用内建函数实例小结
Oct 22 Python
Python应用实现双指数函数及拟合代码实例
Jun 19 Python
Django:使用filter的pk进行多值查询操作
Jul 15 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
php安全配置 如何配置使其更安全
2011/12/16 PHP
初品cakephp 入门基础
2012/02/16 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
Python编程之多态用法实例详解
2015/05/19 Python
Python实现基于POS算法的区块链
2018/08/07 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
python创造虚拟环境方法总结
2019/03/04 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
基于Python函数和变量名解析
2019/07/19 Python
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
党校培训思想汇报
2014/01/03 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
信用卡催款律师函
2015/05/27 职场文书
毕业设计工作总结
2015/08/14 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python