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实现每次处理一个字符的三种方法
Oct 09 Python
Windows8下安装Python的BeautifulSoup
Jan 22 Python
对python中return和print的一些理解
Aug 18 Python
python抓取搜狗微信公众号文章
Apr 01 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
python的json中方法及jsonpath模块用法分析
Dec 06 Python
Python气泡提示与标签的实现
Apr 01 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
Python 视频画质增强
Apr 28 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 远程关机操作的代码
2008/12/05 PHP
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
vue实现微信分享功能
2018/11/28 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python pymongo模块常用操作分析
2018/09/01 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
Python使用python-docx读写word文档
2019/08/26 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
幼儿教师自我鉴定
2013/11/02 职场文书
高考励志标语
2014/06/05 职场文书
四风查摆剖析材料
2014/10/10 职场文书
赵氏孤儿观后感
2015/06/09 职场文书