Pygame中Sprite类实现多帧动画3-2

news2024/9/20 7:53:40

3.2.3 设置帧的宽度、高度、范围及列数

通过如图6所示的代码设置帧的宽度、高度、范围及列数。

图6 设置帧的宽度、高度、范围及列数的代码

其中,frame_width、frame_height、rect和columns都是MySprite类的属性,在其__init__()方法中定义,分别表示帧的宽度、高度、范围及列数。

3.2.4 获取图片中最后一帧的编号

获取图片中最后一帧的编号的代码如图7所示。

图7 获取图片中最后一帧的编号的代码

其中,第1行代码通过get_rect()方法获取整张图片的宽度和高度,保存在rect变量中,第2行代码通过rect.width//width获取整张图片中帧的列数,rect.height//height获取整张图片中帧的行数,两者的乘积减去1即为最后一帧的编号(帧的编号从0开始)。

注意1 图7代码中的rect与图6代码中的self.rect不是同一个变量。

注意2 帧的编号从0开始,即第一帧的编号是0,所以最后一帧的编号是帧总数减1。

3.3 子类的update()方法

MySprite类的update()方法作用是显示指定帧。

3.3.1 update()方法的格式

update()方法的格式如图8所示。

图8 update()方法的格式

其中,参数current_time表示当前时间,用于确定是否显示下一帧;参数rate表示持续显示每一帧的时间,默认值是30。

3.3.2 判断当前显示帧的编号

update()方法通过帧编号来确定当前显示哪一帧,判断当前显示帧的编号的代码如图9所示。

图9 判断当前显示帧的编号的代码

其中,last_time表示显示上一帧的时间,current_time表示当前时间,current_time>self.last_time+rate表示上一帧图像已经持续显示了rate时间了,此时该显示下一帧图像了,frame表示显示的当前帧的编号,

self.frame+=1表示显示下一帧图像;第二个if语句判断当前显示帧的编号是否是最后一帧,如果是最后一帧,则要循环显示第一帧,因此self.frame=self.first_frame;当显示新的一帧图像后,上一帧图像的时间更新为当前时间。

注意3 代码中的last_time、frame、first_frame均为MySprite类的属性,在其__init__()方法中定义。

3.3.3 显示指定帧图像

在确定了当前显示帧的编号后,使用如图10所示的代码显示指定帧图像。

图10 显示指定帧图像的代码

其中,第43行代码中的old_frame表示前一帧的编号,如果当前要显示帧的编号不等于前一帧的编码,表示此时要显示新的帧图像了;第44-45行代码获取当前帧图像左上角的坐标,frame_x和frame_y分别表示左上角的横纵坐标,rect表示当前帧的范围,如图11所示。

图11 frame_x、frame_y和rect的示意图

第47行代码通过subsurface()方法显示整张图片中的某一帧,参数rect即为显示的范围;最后第48行代码,将old_frame即上一帧的编号更新为当前帧编码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2118898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计选题推荐-产品委托配送系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

【项目综合】基于 Boost 库的站内搜索引擎(保姆式讲解,小白包看包会!)

目录 一、项目背景 1)搜索引擎是什么 2)Boost 库是什么 3)搜索的结果是什么 二、项目原理 1)宏观原理和整体流程 2)正序索引与倒序索引 3)所用技术栈和项目环境 4)项目源码地址&#x…

[【人工智能学习笔记】4_3 深度学习基础之卷积神经网络

卷积神经网络概述 卷积神经网络(Convolutional Neural Network, CNN)一种带有卷积结构的深度神经网络,通过特征提取和分类识别完成对输入数据的判别;在1989年提出,早期被成功用于手写字符图像识别;2012年更深层次的AlexNet网络取得成功,伺候卷积神经网络被广泛应用于各…

5G毫米波阵列天线仿真——CDF计算(方法一)

累计分布函数(CDF)在统计学上是一个由0增长到1的曲线。5G中CDF被3GPP标准推荐使用,5G 天线阵的有效全向辐射功率EIRP的CDF函数被用来评价设备的质量和性能。由于EIRP是在某一个方向角theta, phi上的辐射功率,幅值由天线增益与激励…

微波无源器件1 一种用于紧凑双极化波束形成网络的新型双模定向耦合器

摘要: 在本文中提出了一种用于实现紧凑双极化波束形成网络的新型定向耦合器。此器件的功能为两个用于矩形波导TE01和TE10模式的独立定向耦合器。这两个模式之间并不耦合。可以获得两个模式的不同耦合值。这个耦合器可以两次用于两个正交计划。因此可以获得此完整网络…

Centos7 安装RocketMQ(二进制版)

一、介绍 RocketMQ:云原生“消息、事件、流”实时数据处理平台,覆盖云边端一体化数据处理场景 在阿里孕育 RocketMQ的雏形时期,我们将其用于异步通信、搜索、社交网络活动流、数据管道,贸易流程中。随着我们的贸易业务吞吐量的上…

python使用超级鹰识别验证码

1.超级鹰注册 超级鹰: https://www.chaojiying.com/ 注册后购买题分 2.获取要识别的图片 我们以这个附件下载的网页为例: https://gh.lnut.edu.cn/system/_content/download.jsp?urltypenews.DownloadAttachUrl&owner1224556702&wbfileid1504223 点开f12然后刷新几…

不小心格式化了移动硬盘怎么恢复?数据恢复的实用方法

在数字化时代,移动硬盘是我们存储和传输数据的重要工具。然而,由于操作失误或其他原因,我们有时会不小心格式化移动硬盘,导致重要数据的丢失。当面临这种情况时,我们应该如何恢复被格式化的数据呢?本文将为…

制造业项目管理系统:企智汇软件专为制造企业量身定制项目管理

企智汇制造业项目管理系统是一款专为制造业量身定制的项目管理软件,旨在帮助企业高效、可视化管理项目,优化工作流程,并提升整体竞争力。以下是该系统的详细介绍: 一、系统概述 企智汇制造行业项目管理系统的功能模块涵盖:客户管…

这些方法,让你的亚马逊广告效果翻倍

据最新发布的《2024年媒体广告报告》显示,亚马逊不仅在全球最具价值品牌榜单中跃居第五位,更已成为广告领域核心平台之一。鉴于此趋势,做好亚马逊广告,是跨境卖家实现商品热销和品牌推广的关键步骤。本文将分享亚马逊广告的类型并…

工作纪实57-SublimeText正则匹配

有一堆错误数据,需要统计不同格式的错误数; 比如:local4000_7999 先验证正则格式是否正确 使用grep统计 egrep -v local\d_\d|wc -l 不匹配 grep -E local\d_\d|wc -l 匹配

智慧驱动,效能跃升 | 华宇市场监管现场执法数智助手

建设背景 为贯彻落实国家市场监督管理总局关于《市场监管“数字执法”能力提升三年行动》的重点工作任务,切实提升基层市场监管行政执法效能。华宇规划设计了“市场监管现场执法数智助手”,依托全国市场监管行政执法办案系统,助力破解现场执法…

干货分享:2024四大录音转文字工具推荐!

日常工作生活中,录音转文字技术不仅能够帮助我们节省大量时间,还能确保信息的准确性和完整性。今天,就让我们一起来探索几款优秀的录音转文字工具吧! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字…

关于OceanBase 多模一体化的浅析

在当今多元化的业务生态中,各行各业对数据库系统的需求各有侧重。举例来说,金融风控领域对数据库的高效事务处理(TP)和分析处理(AP)能力有着严格要求;游戏行业则更加注重文档数据库的灵活性和性…

【sensor】激光雷达的特性与参数详解(七)Velodyne VLP-16 激光雷达的关键参数举例

【sensor】镜头评价指标及测试方法(一) 【sensor】镜头评价指标及测试方法(二)—畸变与分辨率 【sensor】镜头评价指标及测试方法(三)--------测量原理及3D相机调查 【sensor】镜头评价指标及测试方法【四】————手机摄像头调查…

论文翻译:arxiv-2024 Benchmarking Benchmark Leakage in Large Language Models

Benchmarking Benchmark Leakage in Large Language Models https://arxiv.org/abs/2404.18824 在大型语言模型中基准测试泄露的基准测试 文章目录 在大型语言模型中基准测试泄露的基准测试摘要1 引言 图1:不同模型在基准测试的训练集上进行逐字训练相对于测试集以…

综合型数据防泄露系统 | 专业企业数据安全保护 | 天锐DLP

天 .锐 DLP是一款融合数据泄露防护、终端安全管理、网络准入控制以及态势感知等为一体的的综合型数据防泄露系统,拥有灵活的策略机制以及丰富的模块组合,可帮助大中型企事业单位最大化程度实现数据安全管控与防护。 【地址:点击了解天锐股份…

数学建模强化宝典(13)M-K检验法

前言 M-K检验法,全称为Mann-Kendall检验法,是一种非参数的假设检验方法,广泛应用于时间序列数据的趋势性变化检验,特别是气候序列中的趋势分析和突变点检测。以下是对M-K检验法的详细介绍: 一、定义与背景 M-K检验法由…

SD 敢达单机 +AI 对战整合版 V2.0+ 无需虚拟机

前言 今天给大家带来一款单机游戏的架设:SD 敢达 AI 对战整合版 V2.0 单机安装教程。 另外:本人承接各种游戏架设(单机联网) 本人为了学习和研究软件内含的设计思想和原理,带了架设教程仅供娱乐。 教程是本人亲自搭…

鸿蒙轻内核A核源码分析系列四(3) 虚拟内存

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 轻内核A核源码分析系列一 数据结构-双向循环链表 轻内核A核源码分析系列二 数据结构-位图操作 轻内核A核源码分析系列三 物理内存(1&#xff0…