首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Love2D动画错误

Love2D动画错误
EN

Stack Overflow用户
提问于 2016-01-09 13:34:57
回答 1查看 78关注 0票数 0

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

下面是移动处理程序函数

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

任何事都能帮上忙!哦,还有,如果有人知道如何让它每隔x秒到达某个帧的位置,那就太好了!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-01-17 09:25:33

对于动画的问题,我可以提出一个解决方案,那就是只在关键的d上使用if,在其他情况下使用elseif。这个问题是由以下事实引起的:如果按下了任何其他键,但w没有按下,那么

代码语言:javascript
复制
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控制结构:

http://www.lua.org/pil/4.3.1.html

http://www.tutorialspoint.com/lua/if_else_statement_in_lua.htm

注意,有些语言将它用作else if,但在Lua中没有空格,因此它被写成elseif

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

https://stackoverflow.com/questions/34690073

复制
相关文章

相似问题

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