pygame用blit()实现动画效果的示例代码


Posted in Python onMay 28, 2020

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

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

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

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

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

完整代码如下:

import pygame,sys
screen = pygame.display.set_mode((600,800))
pygame.display.set_caption('动画测试')
image = pygame.image.load('boss.png')
rect = image.get_rect()
rect2 = pygame.Rect(0,0,rect.width // 4,rect.height)
tick = pygame.time.Clock()
 
while:
  
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      sys.exit()
 
  
  for n in range(4):
    tick.tick(4)
    rect2.x + = n * rect2.width 
    if rect2.x> 1000:
      rect2.x = 0
    screen.fill((255,255,255))
    screen.blit(image,(0,0),rect2)#这里给了3个实参,分别是图像,绘制的位置,绘制的截面框
    pygame.display.flip()

pygame用blit()实现动画效果的示例代码

其实还有一种方式实现动画,就是surface.subsurface(),明天我会介绍这个方法.

到此这篇关于pygame用blit()实现动画效果的示例代码的文章就介绍到这了,更多相关pygame blit()动画内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python SQLite3数据库操作类分享
Jun 10 Python
Python数组条件过滤filter函数使用示例
Jul 22 Python
深入理解Python中的*重复运算符
Oct 28 Python
Python实现购物车程序
Apr 16 Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
[机器视觉]使用python自动识别验证码详解
May 16 Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
python与mysql数据库交互的实现
Jan 06 Python
Python读取配置文件(config.ini)以及写入配置文件
Apr 08 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
PyCharm中如何直接使用Anaconda已安装的库
May 28 #Python
Python内置异常类型全面汇总
May 28 #Python
python不到50行代码完成了多张excel合并的实现示例
May 28 #Python
python使用openpyxl操作excel的方法步骤
May 28 #Python
基于python实现破解滑动验证码过程解析
May 28 #Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 #Python
基于Pyinstaller打包Python程序并压缩文件大小
May 28 #Python
You might like
oracle资料库函式库
2006/10/09 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
解析dedeCMS验证码的实现代码
2013/06/07 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
javascript时间函数基础介绍
2013/03/28 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
原生js实现tab选项卡切换
2020/03/23 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
JS实现随机抽取三人
2019/11/06 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
什么是Rollback Segment
2013/04/22 面试题
数控专业毕业生自荐信范文
2014/03/04 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
领导干部考核评语
2015/01/04 职场文书
七年级思品教学反思
2016/02/20 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技