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基础教程之对象和类的实际运用
Aug 29 Python
Python实现一个简单的MySQL类
Jan 07 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
简析Python的闭包和装饰器
Feb 26 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
Mar 13 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
python groupby 函数 as_index详解
Dec 16 Python
Python实现屏幕录制功能的代码
Mar 02 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
Jun 11 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实现简单的MVC框架实例
2015/09/23 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
FF IE兼容性的修改小结
2009/09/02 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
js中this用法实例详解
2015/05/05 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
微信小程序表单弹窗实例
2018/07/19 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python编程中的异常处理教程
2015/08/21 Python
python学生管理系统
2019/01/30 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
利用Python实现kNN算法的代码
2019/08/16 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
市三好学生主要事迹
2014/01/28 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
公司开业庆典策划方案
2014/06/04 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
办公用品质量保证书
2015/05/11 职场文书
美元符号 $
2022/02/17 杂记