Animation Love2D动画错误

Animation Love2D动画错误,animation,lua,love2d,Animation,Lua,Love2d,我的角色移动动画有一个恼人的bug。这个错误是,每当我运行代码时,动画只对“W”键有效。(运动是WASD)我没有得到任何编译错误,我使用的是Love2D 0.10.1 下面是移动处理程序函数 function player.move(dt) if love.keyboard.isDown("d") and player.xvel < player.speed then player.xvel = player.xvel + player

我的角色移动动画有一个恼人的bug。这个错误是,每当我运行代码时,动画只对“W”键有效。(运动是WASD)我没有得到任何编译错误,我使用的是Love2D 0.10.1

下面是移动处理程序函数

   function player.move(dt)
       if love.keyboard.isDown("d") and
       player.xvel < player.speed then
          player.xvel = player.xvel + player.speed * dt
          player.image = love.graphics.newImage("images/player/walk1.png")
       else
          player.image = love.graphics.newImage("images/player/static.png")
       end

       if love.keyboard.isDown("a") and
       player.xvel > -player.speed then
          player.xvel = player.xvel - player.speed * dt
          player.image = love.graphics.newImage("images/player/walk1.png")
       else
          player.image = love.graphics.newImage("images/player/static.png")
       end

       if love.keyboard.isDown("s") and
       player.yvel < player.speed then
          player.yvel = player.yvel + player.speed * dt
          player.image = love.graphics.newImage("images/player/walk1.png")
       else
          player.image = love.graphics.newImage("images/player/static.png")
       end

       if love.keyboard.isDown("w") and
       player.yvel > -player.speed then
          player.yvel = player.yvel - player.speed * dt
          player.image = love.graphics.newImage("images/player/walk1.png")
       else
          player.image = love.graphics.newImage("images/player/static.png")
       end

    end
function player.move(dt)
如果爱.键盘.isDown(“d”)和
player.xvel-player.speed然后
player.xvel=player.xvel-player.speed*dt
player.image=love.graphics.newImage(“images/player/walk1.png”)
其他的
player.image=love.graphics.newImage(“images/player/static.png”)
结束
如果爱.键盘.isDown(“s”)和
player.yvel-player.speed然后
player.yvel=player.yvel-player.speed*dt
player.image=love.graphics.newImage(“images/player/walk1.png”)
其他的
player.image=love.graphics.newImage(“images/player/static.png”)
结束
结束

什么都行!哦,还有,如果有人知道如何使它每x秒到达某一帧,那就太好了!谢谢

对于动画问题,我可以提出一种解决方案,即仅在
d
键处使用
if
,在其他情况下使用
elseif
。问题的原因是,如果按下任何其他键,但未按下
w
,则

if love.keyboard.isDown("w") and
player.yvel > -player.speed then
    player.yvel = player.yvel - player.speed * dt
    player.image = love.graphics.newImage("images/player/walk1.png")
else
    player.image = love.graphics.newImage("images/player/static.png")
end
开关进入
else
部分,因为
w
未关闭,在else部分,它将图像设置为
static.png

在这里,您可以阅读有关Lua的
if-elseif-else-end
控制结构的信息:

请注意,有些语言将它用作
else if
,但在Lua中,两者之间没有空格,因此它的编写方式类似于
elseif