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获取Windows或Linux主机名称通用函数分享
Nov 22 Python
python冒泡排序简单实现方法
Jul 09 Python
Python读写unicode文件的方法
Jul 10 Python
怎么使用pipenv管理你的python项目
Mar 12 Python
在cmd中运行.py文件: python的操作步骤
May 12 Python
python 以16进制打印输出的方法
Jul 09 Python
python八皇后问题的解决方法
Sep 27 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 Python
Python如何使用神经网络进行简单文本分类
Feb 25 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
最省空间的计数器
2006/10/09 PHP
多重?l件?合查?(一)
2006/10/09 PHP
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php数据库抽象层 PDO
2011/05/07 PHP
php类的定义与继承用法实例
2015/07/07 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
超简单的jquery的AJAX用法
2010/05/10 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
一步步教你用Python实现2048小游戏
2017/01/19 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
python3实现猜数字游戏
2020/12/07 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
StringBuilder和String的区别
2015/05/18 面试题
中间件的定义
2016/08/09 面试题
机关办公室岗位职责
2014/04/16 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
企业宣传标语
2014/06/09 职场文书
毕业实习感受与体会
2015/05/26 职场文书
小学数学教师研修日志
2015/11/13 职场文书
信息技术研修心得体会
2016/01/08 职场文书
幼儿园语言教学反思
2016/02/23 职场文书