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

news2024/11/15 20:04:56

4 使用自定义类MySprite

使用自定义类MySprite实现多帧动画的步骤是首先创建MySprite类的实例,之后使用相关函数对该实例进行操作。

4.1 创建MySprite类的实例

创建MySprite类的实例的代码如图12所示。

图12 创建MySprite类的实例的代码

其中,变量dragon即为MySprte类的实例,参数screen为pygame创建的窗口。

4.2 导入图片文件

通过dragon导入图片文件的代码如图13所示。

图13 导入图片文件的代码

其中,load()方法即为“3.2 子类的load()方法”中提到的load()方法,第一个参数表示导入图片的文件名,第2和第3个参数分别表示帧的宽度和高度;第4个参数表示图片中包含帧的列数。

4.3 将实例加入到“组”中

使用“组”,可以对多个Sprite实例进行同一的绘制和更新,使得代码得到了简化。

pygame.sprite.Group类就是这个“组”,它其实是一个容器,可以包含多个Sprite类的实例。创建“组”并且将dragon加入到“组”的代码如图14所示。

图14 将实例加入到“组”中的代码

其中,group即为创建的“组”,通过add()方法将dragon加入到“组”中,之后对“组”的操作实际上就是对dragon进行了相应操作。

4.4 更新并显示帧图像

通过15所示的代码,更新并显示帧图像。

图15 更新并显示帧图像的代码

其中,group即为“4.3 将实例加入到“组”中”中创建的“组”,通过group调用的update()方法实际上就是调用了MySprite类的update()方法,来实现帧图像的更新,参数ticks是当前时间;通过group调用的draw()方法实际上就是MySprite类的draw()方法,该方法为Sprite类自带的方法,在其子类MySprite类没有重写draw(),因此此时调用的是Sprite类的draw()方法。

相关链接2 父类方法与子类方法的关系请参考《Python中类的使用5》。

5 完整代码

以上提到的完整代码如图16所示。

图16 完整代码

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

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

相关文章

2024年CCPC网络赛A题题解 —— 军训Ⅰ(gym105336A)

个人认为很唐的一道题,考虑到不少人可能懒得写,我这里给大家发个代码叭,还有一点点题解(因为真的不是很难)。这是题面: 然后我来讲讲怎么做,不觉得会有多少人题目意思都理解不了叭?这…

Javaweb项目-调用接口-如何在服务器端跳转网页后显示并弹出对话框代码

Webapp 项目中在java包下新建一个服务端类 使用JOptionPane框架组件 调用showMessageDialog的方法实现 四个参数null,"这是一个信息对话框","信息",JOptionPane.INFORMATION_MESSAGE 还有确认对话框的代码showConfirmDialog package servlet;import java…

k9s 是什么?有什么功能?

目录 k9s 是什么? 有什么功能? 手动安装 K9s(Windwos) 将 k9s.exe 添加到系统 PATH 启动 K9s k9s 是什么? K9s 是一个命令行工具,用于通过一个图形化的终端界面(类似于图形化用户界面但在命…

【Linux】常用的命令

文章目录 lsls -l / touchcdpwdcatechovim打开文件编辑内容保存退出 mkdirrmmvcpmangreppsnetstat总结 : ls ls > list 列出当前目录下都有哪些内容(文件/目录) 直接输入 ls,是查看当前目录的情况;输入 ls/ 就是看…

检查你的防病毒软件是否可以阻止这 5 个测试恶意软件文件

从网络安全专家到你,每个人都知道你应该使用防病毒软件来保护你的电脑免受黑客、病毒和其他类型的网络威胁。 但即使你这些年来一直在努力使用防病毒程序,你怎么知道它真的有效呢? 安全专家已经想到了这一点,并创建了几种类型的…

TMS320F28335芯片及使用介绍

1、简介 CPU性能的好坏不仅取决于主频大小,还需要看其整体架构集成性能、运算能力与指令体系。TMS320C2000系列DSP集微控制器和高性能 DSP 的特点于一身,具有强大的控制和信号处理能力,能够实现复杂的控制算法。TMS320C2000 系列DSP 片上整合了Flash存储器、快速的AD转换器…

基于微信小程序+Java+SSM+Vue+MySQL的付费自习室预订管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSSMVueMySQL的付费自习室预订管理系统【…

【CMake编译报错小复盘】CMAKE_CUDA_ARCHITECTURES,CMake version,GCC version问题

今天在写大模型量化推理框架时遇到了一些编译上的错误,简单复盘一下问题和解决方案: 问题1:CMAKE_CUDA_ARCHITECTURES 报错信息: CMake Error: CMAKE_CUDA_ARCHITECTURES must be non-empty if set cmake和cuda相关的报错通常都…

linux进程间通信——进程间通信概念、最基本通信——管道文件

前言: 本节内容将要讲解进程间通信。 之前我们说过进程之间是相互独立的, 但是,相互独立并不代表不能进行数据的输送。就好比我和你是相互独立的, 但是我们可以成为朋友, 可以互赠礼物。 而我们一般而言的,…

【C语言】归并排序递归和非递归——动图演示

目录 一、归并排序思想1.1 基本思想1.2 大体思路 二、实现归并排序(递归)三、实现归并排序(非递归)3.1 实现思路:3.2 越界处理3.3 时间复杂度和空间复杂度 总结 一、归并排序思想 1.1 基本思想 归并排序(M…

RTMP和WebRTC使用场景有哪些差别?

省流版先说结论 直播领域,RTMP和WebRTC各有优势。如果直播场景对延迟有一定要求,但更注重稳定性和兼容性,那么RTMP可能是一个更好的选择。如果直播场景需要极低的延迟,并且用户主要在浏览器环境下进行观看和互动,那么…

Leangoo敏捷工具在缺陷跟踪(BUG)管理中的高效应用

在开发过程中,缺陷(BUG)管理一直是项目管理中的一个关键环节。及时发现并修复BUG,不仅能够提高产品质量,还能有效提升团队的工作效率和用户满意度。 在敏捷开发中,快速迭代和频繁交付的特点使得缺陷管理的…

Servlet的特性(一)

Servlet的主要用途: 接受、处理来自浏览器端(BS架构中的B端)的请求和用户输入 响应来自数据库或者服务端(BS架构中的S端)产生的数据到浏览器端,动态构建网页。 手动实现Servlet小程序 实现步骤 自定义一个类型,实现Servlet接口或者继承Ht…

Spring Boot 集成 Redisson 实现消息队列

包含组件内容 RedisQueue:消息队列监听标识RedisQueueInit:Redis队列监听器RedisQueueListener:Redis消息队列监听实现RedisQueueService:Redis消息队列服务工具 代码实现 RedisQueue import java.lang.annotation.ElementTyp…

GD32E230 RTC报警中断功能使用

GD32E230 RTC报警中断使用 GD32E230 RTC时钟源有3个,一个是内部RC振动器产生的40KHz作为时钟源,或者是有外部32768Hz晶振.,或者外部高速时钟晶振分频作为时钟源。 🔖个人认为最难理解难点的就是有关RTC时钟异步预分频和同步预分频的计算。在对…

C++第二节入门 - 缺省参数和函数重载

一、缺省参数 1、概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。 在调用该函数的时候&#xff0c;如果没有指定实参则采用该形参的缺省值&#xff0c;否则使用指定的实参&#xff01; #include<iostream> using namespace std;void Func(int a 0) {c…

2024 水博会,国信华源登场,数智创新助力水利高质量发展

9月4日-6日&#xff0c;由中国水利学会和中国水利工程协会共同主办的2024中国水博览会暨第十九届中国&#xff08;国际&#xff09;水务创新技术交流会在重庆国际博览中心召开。 本次水博会以“展水利前沿新技术 览新质生产力场景”为主题&#xff0c;国信华源携最新智能监测预…

【佳学基因检测】如何升级一个不再维护的软件包中的PHP代码?

如何升级一个不再维护的软件包中的PHP代码&#xff1f; 为什么要升级一个不再维护但是仍在使用的软件包中的PHP代码&#xff1f; 升级一个不再维护但仍在使用的软件包中的 PHP 代码是一个复杂但重要的过程。虽然这些软件包可能已经不再活跃地维护或更新&#xff0c;但升级其代…

通信工程学习:什么是ATM异步转移模式

ATM&#xff1a;异步转移模式 ATM&#xff1a;Asynchronous Transfer Mode&#xff08;异步转移模式&#xff09;是一种先进的通信技术&#xff0c;它采用固定长度的信元&#xff08;Cell&#xff09;作为信息传输、复用、交换及处理的基本单位&#xff0c;并通过异步时分复用的…

挖矿木马-Linux

目录 介绍步骤 介绍 1、挖矿木马靶机中切换至root用户执行/root目录下的start.sh和attack.sh 2、题目服务器中包含两个应用场景&#xff0c;redis服务和hpMyAdmin服务&#xff0c;黑客分别通过两场景进行入侵&#xff0c;入侵与后续利用线路路如下&#xff1a; redis服务&…