python pygame英雄循环飞行及作业示例

 更新时间:2022年08月15日 10:49:13   作者:ZacheryZHANG  
这篇文章主要为大家介绍了python pygame英雄循环飞行及作业实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

1. 英雄的简单动画实现

开发需求:

  • 在游戏初始化定义一个pygame.Rect的变量记录英雄的初始位置
  • 在游戏循环中每次让英雄的y-1--向上移动
  • y<=0时,将英雄移动到屏幕的底部(即飞机从底部飞行到顶部时,将飞机再次移动到底部向上飞行)
  • 英雄飞机向上飞行,当英雄完全从上方飞出屏幕后
  • 将飞机移动到屏幕的底部

提示:

  • 每一次调用update()方法之前,需要把所有的游戏图像都重新绘制一遍
  • 而且应该最先重新绘制背景图像
  • 考虑新增if条件判断,若英雄飞机的y坐标已经超出屏幕范围,为其重新赋值
  • 此if条件判断应建立在修改飞机位置代码下方
  • 若想飞机完全飞出屏幕,相当于判断那飞机的y坐标值是否 <=−126(英雄飞机高度)<=-126(英雄飞机高度)<=−126(英雄飞机高度),因为英雄飞机的尺寸为 102(长)∗126(高)102(长)*126(高)102(长)∗126(高)
  • 若想把飞机挪动到屏幕底部,需要将其 yyy 坐标赋值为背景图片的高度642

2. 案例演示

2.1 代码演示

具体代码演示如下所示:代码部分在上篇文章(英雄动画效果实现)的代码基础上,新增if条件判断,并且在if条件中为英雄飞机的y属性赋值。从而实现英雄飞机从屏幕底部到屏幕顶部,然后再从屏幕底部出发到屏幕顶部,这种循环飞行动画效果。

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, (280, 500))
# 可以在所有绘制工作完成之后,统一调用update方法
pygame.display.update()
# 创建时钟对象
clock = pygame.time.Clock()
# 游戏循环->意味着游戏的正式开始
# 1. 定义rect记录飞机的初始位置
hero_rect = pygame.Rect(280, 500, 102, 126)
# 游戏循环->意味着游戏的正式开始
while True:
    # 希望无限循环内部的代码每秒钟重复循环60次
    # 可以指定循环体内部的代码执行的频率
    clock.tick(60)
    # 2. 修改飞机的位置
    hero_rect.y -= 1
    # 判断飞机的位置
    if hero_rect.y <= -126:
        hero_rect.y = 642
    # 3. 调用blit方法绘制图像
    # 先绘制背景,在绘制飞机,就不会留下残影(背景把上一次的飞机遮挡)
    screen.blit(bg, (0, 0))
    screen.blit(hero, hero_rect)
    # 4. 调用update方法更新显示
    pygame.display.update()
pygame.quit()

2.2 运行结果

运行结果如下图所示:运行结果为动画效果,此处以图片效果进行展示。

此时,飞机从底部正在向顶部飞行,如下图所示:

飞机运行完从底部飞到顶部,此时又从底部重新出现,如下图所示:

以上就是python pygame英雄循环飞行及作业示例的详细内容,更多关于python pygame循环飞行的资料请关注脚本之家其它相关文章!

相关文章

  • 浅谈Python的元编程

    浅谈Python的元编程

    提到元这个字,你也许会想到元数据,元数据就是描述数据本身的数据,元类就是类的类,本文的主要目的是向大家介绍这些元编程技术,并且给出实例来演示它们是怎样定制化源代码的行为。刚兴趣的朋友可以参考一下
    2021-09-09
  • 1行Python代码实现去除图片水印详解

    1行Python代码实现去除图片水印详解

    这篇文章主要为大家介绍了1行Python代码实现去除图片水印详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • pandas apply使用多列计算生成新的列实现示例

    pandas apply使用多列计算生成新的列实现示例

    这篇文章主要介绍了pandas apply使用多列计算生成新的列实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • python登录QQ邮箱发信的实现代码

    python登录QQ邮箱发信的实现代码

    python登录QQ邮箱发信的代码,有需要的朋友可以参考下
    2013-02-02
  • 基于Python实现合并多张图片转成mp4视频

    基于Python实现合并多张图片转成mp4视频

    随着现代科技飞速发展和人们提升视觉上体验,利用图片生成视频的方法,确实为工作或者提升生活体验感做了很多成功案例,本文就来介绍一下具体实现方法吧
    2023-04-04
  • 从Python程序中访问Java类的简单示例

    从Python程序中访问Java类的简单示例

    这篇文章主要介绍了从Python程序中访问Java类的简单示例,包括给出了在安卓开发中的一个短小示例,需要的朋友可以参考下
    2015-04-04
  • PyCharm 无法 import pandas 程序卡住的解决方式

    PyCharm 无法 import pandas 程序卡住的解决方式

    这篇文章主要介绍了PyCharm 无法 import pandas 程序卡住的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python如何将给定字符串中的大写英文字母按以下对应规则替换

    Python如何将给定字符串中的大写英文字母按以下对应规则替换

    这篇文章主要介绍了Python如何将给定字符串中的大写英文字母按以下对应规则替换,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • opencv python简易文档之图像处理算法

    opencv python简易文档之图像处理算法

    OpenCV是一个开源库,包含了许多计算机视觉算法,它在计算机视觉和图像处理中起着重要作用,用于实时操作,其效率足以满足工业上的要求,这篇文章主要给大家介绍了关于opencv python简易文档之图像处理算法的相关资料,需要的朋友可以参考下
    2021-08-08
  • python基于socket函数实现端口扫描

    python基于socket函数实现端口扫描

    这篇文章主要为大家详细介绍了python基于socket函数实现端口扫描,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论