pygame用blit()实现动画效果

pygame的的实现动画的方法有很多,但是都是围绕着表面进行的,也就是说实现动画的方式不同,但是本质其实都是对表面的不同处理方式而已。

原理其实很简单,有点像我们做地铁的时候隧道里的广告一样。我们设置一个窗口。然后让窗口在一个画着很多帧图像的图上面移动,当我们透过这个窗口去观察这幅图的时候,只要窗口沿着一个方向去运动,那么就会产生动画效果。

今天我介绍的是通过块传输的方法去实现。

surface.blit(image,(x,y),rect)  在这里surface.blit()这个方法应该大家都很熟悉了,我们就是利用第三个参数,也就是绘制区域的变化实现的动画.我们将图像的一部分绘制出来。如果加上一个简单的循环,让绘制区域的位置发生变化。那么就可以实现动画效果啦。

这个方法实现的精灵动画很简单.

完整代码如下:


PS:非常抱歉,因为这段代码是几年前我给我孩子写的一个小游戏里的其中一段,我没有测试就直接剪切过来了,后来自己一直也没注意过评论,所以一直没发现这段代码无法正常运行。 现在对代码做了更新,直接复制粘贴就可以运行了,注意在第5行参数那里把图片路径和文件名填写正确。    2020-9-4

import sys,pygame

pygame.init() #初始化pygame类
screen = pygame.display.set_mode((600,800)) #设置窗口大小
pygame.display.set_caption('动画测试') #设置窗口标题
image = pygame.image.load('512x126.png') #加载图片,这里一定要正确填写图片路径,如果和py文件在同目录下则直接写文件名(带上文件类型)
tick = pygame.time.Clock()
frameNumber = 6 #设置帧数,示例图片有6帧
frameRect = image.get_rect()#获取全图的框体数据,以此计算单帧框体
frameRect.width //= frameNumber #获取每一帧的
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值