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实现的各种排序算法代码
Mar 04 Python
用python删除java文件头上版权信息的方法
Jul 31 Python
Python单元测试框架unittest使用方法讲解
Apr 13 Python
python验证码识别的实例详解
Sep 09 Python
Python闭包之返回函数的函数用法示例
Jan 27 Python
flask框架视图函数用法示例
Jul 19 Python
tensorflow实现加载mnist数据集
Sep 08 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
Python类的继承用法示例
Jan 31 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
Pytorch 中retain_graph的用法详解
Jan 07 Python
Python爬虫简单运用爬取代理IP的实现
Dec 01 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
PHP return语句的另一个作用
2014/07/30 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
Flask框架模板渲染操作简单示例
2019/07/31 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
pytorch-RNN进行回归曲线预测方式
2020/01/14 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
Python正则表达式如何匹配中文
2020/05/27 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
Python如何定义有可选参数的元类
2020/07/31 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
2015公司年度工作总结
2015/05/14 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书