我的角色移动动画有一个恼人的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任何事都能帮上忙!哦,还有,如果有人知道如何让它每隔x秒到达某个帧的位置,那就太好了!谢谢!
发布于 2016-01-17 09:25:33
对于动画的问题,我可以提出一个解决方案,那就是只在关键的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控制结构:
http://www.lua.org/pil/4.3.1.html
http://www.tutorialspoint.com/lua/if_else_statement_in_lua.htm
注意,有些语言将它用作else if,但在Lua中没有空格,因此它被写成elseif。
https://stackoverflow.com/questions/34690073
复制相似问题