Love2D 步行动画在没有 spritesheet 的按键上播放

Love2D walking animation play on key press without spritesheet

假设您有三个图像文件:walkleft1.pngwalkleft2.pngwalkleft3.png
如何使用这些图像在按键时播放动画?
有没有办法做到这一点而不必使用精灵sheet?

左行走精灵:

经典的做法是让每个贴图对应一个数字。然后,您可以存储动画的阶段并根据数字显示正确的帧,每隔一定的毫秒数增加它,并在达到最大值时将数字重置为 0。我敢肯定网上有很多资源可以提供示例。但是,这里有一些伪代码可以给你一些想法:

class animation
    stage = 0
    image_array = []        

    constructor(images)
        for image in images
           image_array.add_item(image)

    next()
        stage++
        if stage > image_array.length
            stage = 0
        return image_array[stage]

然后,每次您想在游戏循环中更新时调用 next()

非常简单

function love.load()
img = {}
img[1] = love.graphics.newImage("sprite1")
img[2] = love.graphics.newImage("sprite2")
img[3] = love.graphics.newImage("sprite3")
frame = 1
anim_speed = 0
end

function love.update()
--only change the frame if anim_speed is equals to 20
if anim_speed == 20 then
if frame < 4 then
frame = frame + 1
else
frame = 1
end
--reset the anim_speed to 0 once it hits 20
anim_speed = 0
end
--increment the anim_speed, this gives delay effect between each frame
if anim_speed < 20 then
anim_speed = anim_speed + 1
end
end

function love.draw()
love.graphics.draw(img[frame])
end

使用此脚本,动画将每 20 帧更改一次,代码未测试。如果它不起作用请告诉我