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检测网页是否有日常链接
Jun 03 Python
Python实现CET查分的方法
Mar 10 Python
python实现中文输出的两种方法
May 09 Python
pandas ix &iloc &loc的区别
Jan 10 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
python内存动态分配过程详解
Jul 15 Python
python实现H2O中的随机森林算法介绍及其项目实战
Aug 29 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
Jan 05 Python
Python连续赋值需要注意的一些问题
Jun 03 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 Python
Python下载商品数据并连接数据库且保存数据
Mar 31 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函数scandir排除特定目录
2014/06/12 PHP
php绘制一条弧线的方法
2015/01/24 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
基于JavaScript实现轮播图效果
2021/01/02 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
某公司部分笔试题
2013/11/05 面试题
预备党员转正考核材料
2014/06/03 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
单位租车协议书
2015/01/29 职场文书
大学感恩节活动总结
2015/05/05 职场文书
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
windows server2008 开启端口的实现方法
2022/06/25 Servers