Pygame基础3-动画

3.动画

原理

动画是连续播放的图片
使用精灵显示动画只需要在update()方法中改变精灵的图片。
需要注意的是播放速度,可以

  • 通过pygame.time.get_ticks()来控制时间,但是这样比较复杂。
  • 最直接的方式是根据帧数来控制播放。每过n帧就切换一次图片。
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
用到的图片

案例

我们使用一个精灵类实现动画。当按下任意键时,开始播放动画。

import pygame, sysclass Player(pygame.sprite.Sprite):def __init__(self, pos_x, pos_y):super().__init__()self.attack_animation = Falseself.sprites = [ pygame.image.load(f'attack_{i}.png') for i in range(1,11)] self.current_sprite = 0self.image = self.sprites[self.current_sprite]self.rect = self.image.get_rect()self.rect.topleft = [pos_x,pos_y]def attack(self):self.attack_animation = Truedef update(self,speed):if self.attack_animation == True:self.current_sprite += speedif int(self.current_sprite) >= len(self.sprites):self.current_sprite = 0self.attack_animation = Falseself.image = self.sprites[int(self.current_sprite)]# General setup
pygame.init()
clock = pygame.time.Clock()# Game Screen
screen_width = 400
screen_height = 400
screen = pygame.display.set_mode((screen_width,screen_height))
pygame.display.set_caption("Sprite Animation")# Creating the sprites and groups
moving_sprites = pygame.sprite.Group()
player = Player(100,100)
moving_sprites.add(player)while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()if event.type == pygame.KEYDOWN:player.attack()# Drawingscreen.fill((0,0,0))moving_sprites.draw(screen)moving_sprites.update(0.25)pygame.display.flip()clock.tick(60)

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

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

相关文章

linux系统--------------mysql数据库管理

目录 一、SQL语句 1.1SQL语言分类 1.2查看数据库信息 1.3登录到你想登录的库 1.4查看数据库中的表信息 1.5显示数据表的结构(字段) 1.5.1数据表的结构 1.5.2常用的数据类型: 二、关系型数据库的四种语言 2.1DDL:数据定义语言&am…

linux内核原理-共享内存,信号

1.共享内存 (1). 定义 在Linux中,进程间通信(IPC)有多种方式,其中共享内存(Shared Memory)是一种非常高效的方式。它允许两个或多个进程共享同一块物理内存区域,从而可以快速地传递大量数据。 …

CentOS 8 中安装与配置 MySQL

本文将详细介绍如何在 CentOS 8 系统上安装 MySQL,并对其进行基础安全配置,包括设置 root 密码、移除匿名用户、禁止 root 远程登录等。 步骤一:安装 MySQL 服务器 利用 CentOS 8 自带的 dnf 包管理器安装 MySQL 服务器: sudo …

【二十一】【算法分析与设计】位运算(2)

137. 只出现一次的数字 II 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例 1: 输入&…

Web安全基础入门+信息收集篇

教程介绍 学习信息收集,针对域名信息,解析信息,网站信息,服务器信息等;学习端口扫描,针对端口进行服务探针,理解服务及端口对应关系;学习WEB扫描,主要针对敏感文件,安全漏洞,子域名信息等;学习信息收集方法…

SpringMVC | SpringMVC中的 “文件上传和下载”

目录: 一、文件上传1.1 文件上传“概述”1.2 文件上传“具体配置” :“前端”中配置“文件上传” ( type“file” 满足3个条件 )“后端”中配置“文件上传” ( 配置id为“CommonsMultipartResolver”的bean 配置“文件上传”的“约束条件” 通过“MultipartFile接口”参数接…

自然语言处理: 第十八章微调技术之QLoRA

文章地址: QLoRA: Efficient Finetuning of Quantized LLMs (arxiv.org) 项目地址: artidoro/qlora: QLoRA: Efficient Finetuning of Quantized LLMs (github.com) 前言 QLoRA是来自华盛顿大学的Tim Dettmers大神提出的模型量化算法,应用于LLM训练,降…

007、IronPython与.NET Framework

今天就随便找个话题——聊聊IronPython与.NET Framework吧,算了,这东西比较专业,为避免说错话,还是从网上搜点专业术语贴出来吧,希望对学习Dynamo的小伙伴能有些帮助。 IronPython IronPython只是Python语言的一种方…

【Linux基础】dash和bash简介

Dash(Debian Almquist Shell)和 Bash(Bourne Again Shell)是 Unix/Linux 系统中的命令行 shell,用于执行命令、管理文件系统、编写脚本等任务的工具。 一、Dash和Bash的区别: Bash(Bourne Agai…

RabbitMQ 的高阶应用及可靠性保证

目录 一、RabbitMQ 高阶应用 1.1 消息何去何从 1.2 过期时间 1.3 死信队列 1.4 延迟队列 1.5 优先级队列 1.6 消费质量保证(QOS) 二、持久化 三、生产者确认 四、消息可靠性和重复消费 4.1 消息可靠性 4.2 重复消费问题 上篇文章介绍了 Rabb…

前端打印(不使用插件,没有副作用)

今天要写一个打印,以前写过是直接调用window.print() ,因为之间是点击预览,跳转页面,打印,所以也没发现有什么副作用,今天,打印是在当前页打印局部,网上部分方法说,打印前把body赋值成局部元素,打印后复原,我发现这样会让打印之后,页面点击事件失效 但是我找到一个无副作用的,…

流畅的 Python 第二版(GPT 重译)(三)

第五章:数据类构建器 数据类就像孩子一样。它们作为一个起点是可以的,但要作为一个成熟的对象参与,它们需要承担一些责任。 马丁福勒和肯特贝克 Python 提供了几种构建简单类的方法,这些类只是一组字段,几乎没有额外功…

前端vue2学习(事件处理)总结

事件处理 <div id"root"><h2>事件处理&#xff0c;hello&#xff0c;{{name}}</hr><button v-on:click"showInfo1">点我提示信息1(不传参)</botton><button click"showInfo2(12,$event)">点我提示信息2&am…

Linux 安装 JDK、MySQL、Tomcat(图文并茂)

所需资料 下载 1.1 软件安装方式 在Linux系统中&#xff0c;安装软件的方式主要有四种&#xff0c;这四种安装方式的特点如下&#xff1a; 安装方式特点二进制发布包安装软件已经针对具体平台编译打包发布&#xff0c;只要解压&#xff0c;修改配置即可rpm安装软件已经按照re…

美易官方:科技巨头涨势好标普指数年底前有望升至6000点

高盛&#xff0c;作为全球领先的金融机构之一&#xff0c;近日发布了一份报告&#xff0c;预测在科技巨头的涨势推动下&#xff0c;标普500指数年底前有望升至6000点。这一预测引起了市场的广泛关注&#xff0c;投资者们纷纷开始重新评估自己的投资策略。 David Kostin等策略师…

金晟富:3.24黄金周末行情解析!周一开盘黄金分析及操作

换资共勉&#xff1a; ​ 此刻看文章的朋友你们好&#xff0c;周末愉快&#xff01;周末&#xff0c;我也习惯性的写分析&#xff0c;为的也是让大家对行情走势有所了解&#xff0c;这样在周一面对行情的时候我们也能从容应对&#xff0c;同时&#xff0c;针对手中持有多空单的…

超过 1200 个能够拦截在野外检测到的 2FA 的网络钓鱼工具包

超过 1200 个能够拦截在野外检测到的 2FA 的网络钓鱼工具包。 #################### 免责声明&#xff1a;工具本身并无好坏&#xff0c;希望大家以遵守《网络安全法》相关法律为前提来使用该工具&#xff0c;支持研究学习&#xff0c;切勿用于非法犯罪活动&#xff0c;对于恶…

202基于matlab的曲柄滑块机构的运动学仿真分析

基于matlab的曲柄滑块机构的运动学仿真分析&#xff0c;分析各个杆的速度、位移、加速度曲线&#xff0c;以及曲柄滑块机构的动画。程序已调通&#xff0c;可直接运行。 202 matlab 曲柄滑块机构 运动学仿真分析 - 小红书 (xiaohongshu.com)

第九篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读Python处理PDF文件

传奇开心果博文系列 系列博文目录Python自动化办公库技术点案例示例系列 博文目录前言一、重要作用介绍二、Python库处理PDF文件基础操作和高级操作介绍&#xff08;一&#xff09;基础操作介绍&#xff08;二&#xff09;高级操作介绍 三、Python库处理PDF文件基础操作示例代码…

H5实现Web ECharts教程:轻松创建动态数据图表

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…