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 17 Python
Python中遍历字典过程中更改元素导致异常的解决方法
May 12 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
Sep 26 Python
利用Python如何制作好玩的GIF动图详解
Jul 11 Python
对TensorFlow中的variables_to_restore函数详解
Jul 30 Python
Python面向对象之Web静态服务器
Sep 03 Python
python中使用you-get库批量在线下载bilibili视频的教程
Mar 10 Python
利用python实现平稳时间序列的建模方式
Jun 03 Python
Python批量获取并保存手机号归属地和运营商的示例
Oct 09 Python
pycharm如何设置官方中文(如何汉化)
Dec 29 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 30 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的大小写敏感问题整理
2011/12/29 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
php报错502badgateway解决方法
2019/10/11 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
js 图片轮播(5张图片)
2008/12/30 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
javascript表单验证大全
2015/08/12 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
python中遍历文件的3个方法
2014/09/02 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
Python中函数参数匹配模型详解
2019/06/09 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
庆元旦广播稿
2014/02/10 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
2014年社区植树节活动方案
2014/02/28 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
python文件目录操作之os模块
2021/05/08 Python
使用CSS连接数据库的方式
2022/02/28 HTML / CSS