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 判断自定义对象类型
Mar 21 Python
python自动化工具日志查询分析脚本代码实现
Nov 26 Python
Python入门篇之编程习惯与特点
Oct 17 Python
深入解析Python中的变量和赋值运算符
Oct 12 Python
Python实现程序判断季节的代码示例
Jan 28 Python
Python面向对象之类的封装操作示例
Jun 08 Python
Python实现EXCEL表格的排序功能示例
Jun 25 Python
使用python模拟命令行终端的示例
Aug 13 Python
Numpy的简单用法小结
Aug 28 Python
Python安装whl文件过程图解
Feb 18 Python
pycharm 2018 激活码及破解补丁激活方式
Sep 21 Python
python编程的核心知识点总结
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
星际玩家的三大定律
2020/03/04 星际争霸
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
IE bug table元素的innerHTML
2010/01/11 Javascript
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
python os.path模块常用方法实例详解
2018/09/16 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
OpenCV 模板匹配
2019/07/10 Python
QML使用Python的函数过程解析
2019/09/26 Python
Python列表如何更新值
2020/05/27 Python
python和php哪个更适合写爬虫
2020/06/22 Python
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
canvas简易绘图的实现(海绵宝宝篇)
2018/07/04 HTML / CSS
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
无故旷工检讨书
2014/01/26 职场文书
视光学毕业生自荐书范文
2014/02/13 职场文书
车队司机自我鉴定
2014/03/02 职场文书
质量月活动策划方案
2014/03/10 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
离婚代理词范文
2015/05/23 职场文书
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android