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 相关文章推荐
探索Python3.4中新引入的asyncio模块
Apr 08 Python
详解Python的单元测试
Apr 28 Python
玩转python爬虫之正则表达式
Feb 17 Python
Python获取linux主机ip的简单实现方法
Apr 18 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
Django models.py应用实现过程详解
Jul 29 Python
python psutil模块使用方法解析
Aug 01 Python
使用turtle绘制五角星、分形树
Oct 06 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 Python
使用python如何删除同一文件夹下相似的图片
May 07 Python
Python语言中的数据类型-序列
Feb 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
php全排列递归算法代码
2012/10/09 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
asp.net和php的区别点总结
2019/10/10 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
Python max内置函数详细介绍
2016/11/17 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
简单了解django索引的相关知识
2019/07/17 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
安全标语口号
2014/06/09 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
婚内房产协议书范本
2014/10/02 职场文书
个人务虚会发言材料
2014/10/20 职场文书
董事长岗位职责
2015/02/13 职场文书
幼师个人总结范文
2015/02/28 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
浅谈自定义校验注解ConstraintValidator
2021/06/30 Java/Android
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python
ant design vue的form表单取值方法
2022/06/01 Vue.js