首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Love2D漫游动画在没有精灵纸的按键上播放

Love2D漫游动画在没有精灵纸的按键上播放
EN

Stack Overflow用户
提问于 2018-06-09 05:53:38
回答 2查看 360关注 0票数 0

假设您有三个图像文件:walkleft1.pngwalkleft2.pngwalkleft3.png

如何在按键的同时使用这些图像播放动画?

有没有一种方法可以在不使用sprite表的情况下做到这一点?

左行精灵:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-09 06:32:48

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

代码语言:javascript
复制
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()

票数 0
EN

Stack Overflow用户

发布于 2018-06-14 23:05:52

这很简单

代码语言:javascript
复制
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帧更改一次,代码未经测试。如果它不工作,请让我知道

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50768854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档