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聊天程序实例代码分享
Nov 18 Python
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python yield 使用浅析
May 28 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
浅析python打包工具distutils、setuptools
Apr 20 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
Dec 24 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
python opencv 批量改变图片的尺寸大小的方法
Jun 28 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 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
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[03:54]DOTA2英雄梦之声_第06期_昆卡
2014/06/23 DOTA
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
Python Django view 两种return的实现方式
2020/03/16 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
运动会广播稿400字
2014/01/25 职场文书
客服部工作职责范本
2014/02/14 职场文书
英语教学随笔感言
2014/02/20 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
党员剖析材料范文
2014/12/18 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android