您现在的位置是:网站首页> 编程资料编程资料
python pygame英雄循环飞行及作业示例_python_
2023-05-26
388人已围观
简介 python pygame英雄循环飞行及作业示例_python_
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 pygame 动画游戏循环游戏时钟实现原理_python_
- Python pygame 项目实战事件监听_python_
- 13行python代码实现对微信进行推送消息的示例代码_python_
- Python pygame项目实战监听退出事件_python_
- django中的自定义分页器的实现示例_python_
- python将写好的程序打包成exe可执行文件_python_
- Python名片管理系统+猜拳小游戏案例实现彩(色控制台版)_python_
- Python 局部变量global详解_python_
- opencv python截取圆形区域的实现_python_
- Python pyecharts案例超市4年数据可视化分析_python_
