Python pygame项目实战英雄动画特效实现

 更新时间:2022年08月12日 11:47:41   作者:ZacheryZHANG  
这篇文章主要为大家介绍了Python pygame项目实战英雄动画特效实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

1. 英雄的简单动画实现

需求:

  • 在游戏初始化定义一个pygame.Rect的变量记录英雄的初始位置
  • 在游戏循环中每次让英雄的y-1--向上移动(y值减1相当于向屏幕上方上移动1)
  • y<=0将英雄移动到屏幕的底部

友情提示:

  • 每一次调用update()方法之前,需要把所有的游戏图像都重新绘制一遍
  • 而且应该最先重新绘制背景图像

2. 代码演示

案例大体思路概括:

  • 在游戏循环上方,定义rect记录飞机的初始位置
  • 在游戏循环内部,修改飞机位置:让飞机的y属性-1
  • 调用blit方法绘制图像(注意:绘制图像的时候,每一次循环都要先绘制背景图在绘制飞机,这样背景图就会把上一次绘制的飞机遮挡住,所以就不会在屏幕上留下上一次飞机的剪影)
  • 调用update方法更新显示,就能看到连贯的动画效果了

具体代码演示如下所示:

import pygame
pygame.init()
# 创建游戏的窗口 640*642
screen = pygame.display.set_mode((640, 642))
# 绘制背景图像
bg = pygame.image.load("./飞机大战资料包/images/background1.jpg")
screen.blit(bg, (0, 0))
# 绘制英雄的飞机
hero = pygame.image.load("./飞机大战资料包/images/me1.png")
screen.blit(hero, (300, 500))
# 可以在所有绘制工作完成之后,统一调用update方法
pygame.display.update()
# 创建时钟对象
clock = pygame.time.Clock()
# 游戏循环->意味着游戏的正式开始
# 1. 定义rect记录飞机的初始位置
hero_rect = pygame.Rect(300, 500, 102, 126)
# 游戏循环->意味着游戏的正式开始
while True:
    # 希望无限循环内部的代码每秒钟重复循环60次
    # 可以指定循环体内部的代码执行的频率
    clock.tick(60)
    # 2. 修改飞机的位置
    hero_rect.y -= 1
    # 3. 调用blit方法绘制图像
    # 先绘制背景,在绘制飞机,就不会留下残影(背景把上一次的飞机遮挡)
    screen.blit(bg, (0, 0))
    screen.blit(hero, hero_rect)
    # 4. 调用update方法更新显示
    pygame.display.update()
pygame.quit()

代码运行结果如下图所示:运行结果为动画效果,大体概括如下:在屏幕上方可以看到,英雄飞机不断向上移动,每次移动距离1,慢慢移动到屏幕上方,最终移出屏幕。

以上就是Python pygame项目实战英雄动画特效实现的详细内容,更多关于Python pygame英雄动画的资料请关注脚本之家其它相关文章!

相关文章

  • python列表返回重复数据的下标

    python列表返回重复数据的下标

    这篇文章主要介绍了python列表返回重复数据的下标,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 基于Python制作打地鼠小游戏

    基于Python制作打地鼠小游戏

    这篇文章主要为大家介绍了如何利用Python实现打地鼠小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Python基于socket实现TCP/IP客户和服务器通信

    Python基于socket实现TCP/IP客户和服务器通信

    本主要介绍了Python socket网络编程TCP/IP服务器与客户端通信的相关资料,这里对Scoket 进行详解并创建TCP服务器及TCP 客户端实例代码,需要的朋友可以参考下
    2021-06-06
  • Python获取当前脚本文件夹(Script)的绝对路径方法代码

    Python获取当前脚本文件夹(Script)的绝对路径方法代码

    在本篇文章中小编给各位整理了关于Python获取当前脚本文件夹(Script)的绝对路径实例代码内容,有需要的朋友们学习下。
    2019-08-08
  • 详解Python中的分组函数groupby和itertools)

    详解Python中的分组函数groupby和itertools)

    这篇文章主要介绍了Python中的分组函数groupby和itertools)的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-07-07
  • opencv-python 提取sift特征并匹配的实例

    opencv-python 提取sift特征并匹配的实例

    今天小编就为大家分享一篇opencv-python 提取sift特征并匹配的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 详解详解Python中writelines()方法的使用

    详解详解Python中writelines()方法的使用

    这篇文章主要介绍了详解详解Python中writelines()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • python计算Content-MD5并获取文件的Content-MD5值方式

    python计算Content-MD5并获取文件的Content-MD5值方式

    这篇文章主要介绍了python计算Content-MD5并获取文件的Content-MD5值方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • django 模型中的计算字段实例

    django 模型中的计算字段实例

    这篇文章主要介绍了django 模型中的计算字段实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • numpy.bincount用于复数权重的方法

    numpy.bincount用于复数权重的方法

    numpy.bincount是NumPy库中的一个函数,它用于计算整数数组中每个值的出现次数,numpy.bincount函数在统计整数数组中每个值的出现次数或权重和时非常有用,本文给大家介绍numpy.bincount如何用于复数权重,感兴趣的朋友跟随小编一起看看吧
    2023-11-11

最新评论