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 相关文章推荐
Django发送html邮件的方法
May 26 Python
Python中操作mysql的pymysql模块详解
Sep 13 Python
python 第三方库的安装及pip的使用详解
May 11 Python
Python实现树的先序、中序、后序排序算法示例
Jun 23 Python
python实现神经网络感知器算法
Dec 20 Python
Python编程求质数实例代码
Jan 31 Python
python破解zip加密文件的方法
May 31 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
python opencv实现gif图片分解的示例代码
Dec 13 Python
Anaconda的安装及其环境变量的配置详解
Apr 22 Python
常用的Python代码调试工具总结
Jun 23 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+MySQL修改记录的方法
2015/01/21 PHP
PHP多文件上传类实例
2015/03/07 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
Python对列表排序的方法实例分析
2015/05/16 Python
Python requests模块实例用法
2019/02/11 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
详解Django配置JWT认证方式
2020/05/09 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
德国网上花店:Valentins
2018/08/15 全球购物
在校学生职业规划范文
2014/01/08 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
学生会主席演讲稿
2014/04/25 职场文书
投资意向书
2014/07/30 职场文书
家具商场的活动方案
2014/08/16 职场文书
文化大革命观后感
2015/06/17 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python