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实现带验证码网站的自动登陆实现代码
Jan 12 Python
python简单获取数组元素个数的方法
Jul 13 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
浅谈Python traceback的优雅处理
Aug 31 Python
Python 编程速成(推荐)
Apr 15 Python
pycharm配置git(图文教程)
Aug 16 Python
python实现logistic分类算法代码
Feb 28 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
Python获取excel内容及相关操作代码实例
Aug 10 Python
Python借助with语句实现代码段只执行有限次
Mar 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
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
解析argc argv在php中的应用
2013/06/24 PHP
PHP内核探索之变量
2015/12/22 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
python计算列表内各元素的个数实例
2018/06/29 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
python属于软件吗
2020/06/18 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
初级Java程序员面试题
2016/03/03 面试题
公交公司毕业生求职信
2014/02/15 职场文书
民政局个人整改措施
2014/09/24 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS