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程序中使用Cookie的教程
Apr 30 Python
python判断windows系统是32位还是64位的方法
May 11 Python
python3连接MySQL数据库实例详解
May 24 Python
对python读取CT医学图像的实例详解
Jan 24 Python
python解压TAR文件至指定文件夹的实例
Jun 10 Python
使用python对多个txt文件中的数据进行筛选的方法
Jul 10 Python
python识别文字(基于tesseract)代码实例
Aug 24 Python
python函数中将变量名转换成字符串实例
May 11 Python
python如何导入依赖包
Jul 13 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 Python
Python中BeautifulSoup通过查找Id获取元素信息
Dec 07 Python
Python 语言实现六大查找算法
Jun 30 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
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
PHP mkdir()定义和用法
2009/01/14 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
PHP中PCRE正则解析代码详解
2019/04/26 PHP
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
js最简单的双向绑定实例讲解
2018/01/02 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
[03:03]2014DOTA2西雅图国际邀请赛 Alliance战队巡礼
2014/07/07 DOTA
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
简单谈谈python中的语句和语法
2017/08/10 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
Python Grid使用和布局详解
2018/06/30 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
彪马美国官网:PUMA美国
2017/03/09 全球购物
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
全国道德模范事迹
2014/02/01 职场文书
班组长岗位职责
2014/03/03 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
SQL语句多表联合查询的方法示例
2022/04/18 MySQL
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库