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中转换角度为弧度的radians()方法
May 18 Python
5种Python单例模式的实现方式
Jan 14 Python
Python对文件操作知识汇总
May 15 Python
整理Python 常用string函数(收藏)
May 30 Python
python查看模块安装位置的方法
Oct 16 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
python 处理string到hex脚本的方法
Oct 26 Python
Python操作Mongodb数据库的方法小结
Sep 10 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
如何把python项目部署到linux服务器
Aug 26 Python
详解Python为什么不用设计模式
Jun 24 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
第四章 php数学运算
2011/12/30 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
python直接访问私有属性的简单方法
2016/07/25 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
python字符串string的内置方法实例详解
2018/05/14 Python
python下载微信公众号相关文章
2019/02/26 Python
python实现拼接图片
2020/03/23 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
win10安装python3.6的常见问题
2020/07/01 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
广告学专业毕业生自荐信
2013/09/24 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
社区综治工作汇报
2014/10/27 职场文书
2014财务年度工作总结
2014/11/11 职场文书
会计做账心得体会
2016/01/22 职场文书