pygame实现图片连播动画:从加载到播放的完整示例
创作时间:
2025-01-22 04:27:34
作者:
@小白创作中心
pygame实现图片连播动画:从加载到播放的完整示例
在游戏开发和动画制作中,实现图片连播效果是一个常见的需求。本文将通过一个简单的示例,展示如何使用pygame库实现多张图片的动画播放效果。
下面这个gif图片由6张图片组成,我们接下来将用pygame实现类似的效果:
下面是实现该效果的完整代码:
import sys
import pygame
# 初始化pygame
pygame.init()
# 设置窗口大小和标题
win = pygame.display.set_mode(size=(800, 600))
pygame.display.set_caption("图片连播")
# 设置时钟对象,控制帧率
clock = pygame.time.Clock()
# 将所有图片文件地址放入列表
image_list = [
"image/long_1.png",
"image/long_2.png",
"image/long_3.png",
"image/long_4.png",
"image/long_5.png",
"image/long_6.png",
]
# 创建空列表用于存储每个Surface对象
frams_list = []
# 遍历图片文件列表,为每个图片生成Surface对象,并加入到frams_list列表
for image in image_list:
fram = pygame.image.load(image)
frams_list.append(fram)
# 控制显示第几张图片
frams_index = 0
# 主循环
while True:
# 填充窗口背景色
win.fill(color=(200, 200, 200))
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 更新图片索引,实现动画效果
frams_index += 0.1
if frams_index > len(frams_list):
frams_index = 0
# 在窗口中绘制当前帧图片
win.blit(frams_list[int(frams_index)], (20, 20))
# 更新屏幕显示
pygame.display.update()
# 控制帧率为60fps
clock.tick(60)
代码解析:
- 首先导入必要的模块并初始化pygame
- 设置窗口大小和标题
- 加载所有图片文件并生成Surface对象列表
- 在主循环中,通过更新
frams_index来控制显示哪一张图片 - 使用
win.blit方法在窗口中绘制当前帧图片 - 通过
pygame.display.update()更新屏幕显示 - 使用
clock.tick(60)控制帧率为60fps
这样,一个简单的pygame图片连播动画就完成了!
热门推荐
萨摩耶犬,优雅外貌和温柔性情的微笑天使
如何截长图,十种截图方法,看看你会几种
复式公寓面积计算方式及优缺点分析
30岁之后你得知道:学会“认怂”,能让你省去很多麻烦
EPC总承包项目进度款支付方式详解
恩怨局!Zeus率HLE击败老东家T1
新疆交通事故赔偿标准详解
交通事故中的精神损失费是否由保险公司赔偿
汽车刹车油多久更换一次?2年4万公里合理吗?不要多花冤枉钱!
冬日汽车保养:刹车油该多久更换一次?
“医”说就懂:除了吃药,五种物理降温方法教给你
自然心理疗法 创造健康福祉 ——记中国科学院心理研究所张向阳教授
文化街深度游:历史、艺术与美食的终极指南
为什么会细菌感染引起发烧
广州68名“平民英雄”获慰问奖励!他们有哪些英雄故事?
哪吒2破百亿:游戏与电影的双向奔赴!
电影与游戏交融,探索互动叙事新领域,蓝海市场初现端倪!
怎么出汗最快?这些方法让你快速出汗
男命八字中哪些特征表明财星旺盛
十部必看韩国电影:从《破墓》到《寄生虫》
床头朝向8大风水禁忌全解,杨明德大师的巧妙解析
判决书送达方式有哪些
龙的三合贵人是什么生肖是什么
英法百年战争是怎么爆发的?
宽街·明医说 | 眼痒、眼干、见风流泪……就是干眼症吗?快给眼睛做个SPA
青岛市南区景点一日游最佳路线
甲泼尼龙琥珀酸钠注射剂对肺炎的作用是什么
华中师范大学公费师范生政策:含免试读研、分配去向、报考条件
华中师范大学公费师范生政策:含免试读研、分配去向、报考条件
河南省单招折算分数计算方法与相关规定