Python pygame项目实战英雄动画特效实现
作者:ZacheryZHANG 时间:2021-02-22 21:07:50
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,慢慢移动到屏幕上方,最终移出屏幕。
来源:https://juejin.cn/post/7130621147619541005
标签:Python,pygame,英雄,动画
0
投稿
猜你喜欢
asp清理缓存的代码
2011-03-09 11:16:00
Python批量查询关键词微信指数实例方法
2022-06-28 14:54:20
Python之csv文件从MySQL数据库导入导出的方法
2023-08-09 04:45:10
使用python检测手机QQ在线状态的脚本代码
2023-03-27 02:12:06
Python字符串中添加、插入特定字符的方法
2021-05-14 00:16:53
django model object序列化实例
2022-07-03 14:55:24
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2023-04-15 09:25:18
在 Pycharm 安装使用black的方法详解
2023-11-29 12:44:59
XML编程实例:用ASP+XML打造留言本
2008-05-04 13:37:00
Vue+Mock.js模拟登录和表格的增删改查功能
2024-05-29 22:20:04
从pandas一个单元格的字符串中提取字符串方式
2022-10-14 21:24:35
ajax(iframe)无刷新提交表单、上传文件
2024-04-17 10:39:47
利用Python实现朋友圈中的九宫格图片效果
2023-07-31 01:37:22
详解SQL中Group By的用法
2024-01-28 14:01:32
用django设置session过期时间的方法解析
2022-11-16 11:36:06
Python logging日志模块 配置文件方式
2021-03-07 04:31:01
Python 批量合并多个txt文件的实例讲解
2022-09-18 07:39:47
W3C发布HTML 5草案 最终版将于2010年敲定
2008-01-26 19:16:00
使用 Supervisor 监控 Python3 进程方式
2021-06-21 11:48:13
oracle日期分组查询的完整实例
2023-06-26 10:14:13