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批量检查网站的可用性
Sep 09 Python
Django 浅谈根据配置生成SQL语句的问题
May 29 Python
python中多个装饰器的执行顺序详解
Oct 08 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
Python button选取本地图片并显示的实例
Jun 13 Python
python获取地震信息 微信实时推送
Jun 18 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
Python input函数使用实例解析
Nov 22 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
信号生成及DFT的python实现方式
Feb 25 Python
python 实现Harris角点检测算法
Dec 11 Python
Python3.9.1中使用match方法详解
Feb 08 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
MySql中正则表达式的使用方法描述
2008/07/30 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
WebStorm ES6 语法支持设置&babel使用及自动编译(详解)
2017/09/08 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
python从子线程中获得返回值的方法
2019/01/30 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
python微信公众号开发简单流程实现
2020/03/09 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
大学生新闻专业个人自我评价
2013/11/12 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
节水标语大全
2014/06/11 职场文书
大跃进口号
2014/06/16 职场文书
应届生求职自荐信
2014/07/04 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
2014年班组工作总结
2014/11/20 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
目标责任书格式范文
2015/05/11 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
六年级语文教学反思
2016/03/03 职场文书
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python