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图片连播动画就完成了!
热门推荐
南方最大滑雪场!峨眉山冬季滑雪全攻略
草莓挑选小窍门:新鲜又安全!
草莓真的能缓解抑郁?最新研究给出答案
草莓的营养密码:从护心到养生
草莓:冬季养生神器,你吃对了吗?
草莓:维C之王的营养密码
冠心病患者的自救指南:心绞痛发作时,你能做什么?
温州最美一日游:楠溪江漂流+古村探秘
宁波古遗址新发现:树桥与潘家耷遗址揭秘古代聚落生活
无锡惠山古镇开启“全日制” 活力模式
“哪吒”海空一体 “悟空”救灾迅捷
洱海、丽江古城、玉龙雪山:云南最美打卡指南
秋冬峨眉山,拍出绝美大片!
浙江古村落保护十周年:文化传承与创新发展的交响曲
冬季草莓怎么吃才最健康?
冬季草莓保鲜秘籍大公开!
恋香&台农1号:冬季草莓界的颜值担当!
环保服务:重塑绿色未来的关键力量
郭麒麟《边水往事》:一部“低开高走”的口碑之作
《边水往事》引发热议:郭麒麟的演技困境与突破之路
家里出现小蚂蚁特别小?家中蚂蚁小贴士大揭秘
蚂蚁药什么牌子效果最好,家里有蚂蚁怎么能彻底消灭?试过才知道
消灭蚂蚁最高效最彻底的方法:拒绝蚁入家门的利器!
赵本山的东北话,春晚笑点担当!
赵本山新作陪你过春节!
周村古商城:老字号的复兴之路
元旦打卡周村古商城:必去景点大揭秘!
冬游千岛湖:登上梅峰岛,俯瞰“水上明珠”
冬日江南:千岛湖、杭州、乌镇必游攻略
秦始皇陵考古发现展开幕 诸多精品文物首次亮相