(三)pygame根据按键状态播放帧动画

前言

在pygame游戏开发专栏中的第一篇文章(一)增量时间的利用中讲解了利用增量时间可以使玩家移动速度不受帧率的影响。

这里播放帧动画同样需要利用增量时间,将游戏的人物行为如行走、待机等动作截取若干帧,利用增量时间不同时刻显示不同的帧。

这篇文章只是说明播放角色行走、待机等动作,如果玩家使用工具的话,这篇文章的方法不能够解决。使用工具的时候,动画不能够一直播放,实现的思路是可以添加定时器,按键按下时候激活定时器,到一定时间失能定时器就可以实现,具体代码在下一篇文章中讲解。

素材准备

正常游戏角色移动需要向上、下、左、右移动,需要相应的动画,如下图所示展示了向右移动时角色的若干帧。

99b4d79e7a094461b533caf5d2f43992.png

GIF动图如图所示

1588b5922fd64b33b4ce2ad348786c97.gif

pygame中播放动画

现在需要在pygame中去播放动画,需要将不同帧截取保存,下面是素材存放示例

bb234c95d49a4dd4822c63fc37dd290b.png

 

这里的12张图片对应上面的角色动作,现在需要用代码实现在不同时刻绘制不同的图片。

实现思路及代码讲解

初始化

def import_image(path):
    """
    导入图像并转换为surface对象
    :param path: 文件夹路径
    :return: 返回surface列表
    """
    surface_list = []

    # 获取path路径下的所有文件名并转换为surface对象
    for _, __, img_files in walk(path):
        for image in img_files:
            full_path = path + '/' + image
            surface = pygame.image.load(full_path).convert_alpha()

            # 调整图像大小,因为这里图形比较小,放大演示更加明显
            surface_width, surface_height
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值