正如你所看到的,我是一个初学者,我一直在关注关于 defold with lua 关于 2D 动画的视频教程,从那时起我一直在问我一些关于这段代码的问题,为什么局部变量 currentAnimation 等于 0 a 然后1 在代码上,然后关于 self.currentAnimation,据我所知 currentAnimation 是一种方法,因为它是通过 self 调用的动作,因此对象可以向右移动?
local currentAnimation = 0
function init(self)
msg.post(".", "acquire_input_focus")
end
function final(self)
end
function update(self, dt)
end
function on_message(self, message_id, message, sender)
end
function on_input(self, action_id, action)
if action_id == hash("right") and action.pressed == true then
if self.currentAnimation == 1 then
msg.post("#sprite", "play_animation", {id = hash("runRight")})
self.currentAnimation = 0
else
msg.post("#sprite", "play_animation", {id = hash("idle")})
self.currentAnimation = 1
end
end
if action_id == hash("left") and action.pressed == true then
if self.currentAnimation == 1 then
msg.post("#sprite", "play_animation", {id = hash("runLeft")})
self.currentAnimation = 0
else
msg.post("sprite", "play_animation", {id = hash("idle")})
self.currentAnimation = 1
end
end
结尾
我应该遵循什么步骤,这样我才能以某种方式更改代码,所以当我从关键字中按下右箭头时,“英雄”会移动,当我停止按下“英雄”时会停止移动,因为使用此代码它不会停止移动直到我再次按下同一个按钮,顺便说一句,第二块代码是在第一个代码之后自己完成的。
现在我有另一个问题,我想让它在按下指定按钮时跳跃:
if action_id == hash("jump") then
if action.pressed then
msg.post("#sprite", "play_animation", {id = hash("heroJump")})
self.currentAnimation = 0
else
msg.post("#sprite", "play_animation", {id = hash("idle")})
end
end
使用此代码它不会跳转,我尝试过其他代码,但它的行为就像一个循环,使跳转动画越过,我只是希望它在每次按下指定按钮时跳转。