当我按下向右箭头时,如何在 lua 中设置精灵动画?
How can i animate sprites in lua when i press the right arrow?
我是 Defold 和编码的新手,我一直在关注 Gamefromscratch 的视频教程来制作精灵动画,就是这个 https://www.youtube.com/watch?v=ha1Wq2FB7L0&t=5s 但是当我按下右箭头时它无法移动,它是只是站在闲置的位置。
local currentAnimation = 0
function init(self)
msg.post(".", "acquire_input_focus")
end
function final(self)
-- Add finalization code here
-- Remove this function if not needed
end
function update(self, dt)
end
function on_message(self, message_id, message, sender)
-- Add message-handling code here
-- Remove this function if not needed
end
function on_input(self, action_id, action)
if aciton_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
end
这是代码,正如我所说的,当我按向右箭头时它不会像教程那样移动。
您在函数 on_input 的第一个 if 语句中拼错了单词 'action'。
此脚本应该有效:
local currentAnimation = 0
function init(self)
msg.post(".", "acquire_input_focus")
end
function final(self)
-- Add finalization code here
-- Remove this function if not needed
end
function update(self, dt)
end
function on_message(self, message_id, message, sender)
-- Add message-handling code here
-- Remove this function if not needed
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
return true
end
end
我是 Defold 和编码的新手,我一直在关注 Gamefromscratch 的视频教程来制作精灵动画,就是这个 https://www.youtube.com/watch?v=ha1Wq2FB7L0&t=5s 但是当我按下右箭头时它无法移动,它是只是站在闲置的位置。
local currentAnimation = 0
function init(self)
msg.post(".", "acquire_input_focus")
end
function final(self)
-- Add finalization code here
-- Remove this function if not needed
end
function update(self, dt)
end
function on_message(self, message_id, message, sender)
-- Add message-handling code here
-- Remove this function if not needed
end
function on_input(self, action_id, action)
if aciton_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
end
这是代码,正如我所说的,当我按向右箭头时它不会像教程那样移动。
您在函数 on_input 的第一个 if 语句中拼错了单词 'action'。
此脚本应该有效:
local currentAnimation = 0
function init(self)
msg.post(".", "acquire_input_focus")
end
function final(self)
-- Add finalization code here
-- Remove this function if not needed
end
function update(self, dt)
end
function on_message(self, message_id, message, sender)
-- Add message-handling code here
-- Remove this function if not needed
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
return true
end
end