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 Sql数据库增删改查操作简单封装
Apr 18 Python
python实现中文转换url编码的方法
Jun 14 Python
python numpy格式化打印的实例
May 14 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
Jun 04 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
python调试神器PySnooper的使用
Jul 03 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
Python模块future用法原理详解
Jan 20 Python
jupyter notebook 多行输出实例
Apr 09 Python
使用Pycharm分段执行代码
Apr 15 Python
OpenCV+Python3.5 简易手势识别的实现
Dec 21 Python
Python tkinter实现日期选择器
Feb 22 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代码把全角数字转为半角数字
2007/12/10 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
图解Javascript——作用域、作用域链、闭包
2017/03/21 Javascript
JSON 数据格式详解
2017/09/13 Javascript
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
python创建临时文件夹的方法
2015/07/06 Python
浅谈Python类的__getitem__和__setitem__特殊方法
2016/12/25 Python
Python生成密码库功能示例
2017/05/23 Python
详解Python进程间通信之命名管道
2017/08/28 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
门卫人员岗位职责
2013/12/24 职场文书
开业庆典答谢词
2014/01/18 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL