Swift SpriteKit-更新功能中的动作或更新位置

Swift SpriteKit-更新功能中的动作或更新位置,swift,html,sprite-kit,skaction,Swift,Html,Sprite Kit,Skaction,我是SpriteKit的新手,大约玩了4个月HTML5。使用HTML5 youtube游戏教程,我的程序总是不断更新玩家或对象的位置 示例(如果有帮助): function run() { var loop = function() { window.requestAnimationFrame(loop, canvas); update(); //here I would add maybe 3 to a player's x pos and redra

我是SpriteKit的新手,大约玩了4个月HTML5。使用HTML5 youtube游戏教程,我的程序总是不断更新玩家或对象的位置

示例(如果有帮助):

function run() {
    var loop = function() {
        window.requestAnimationFrame(loop, canvas);

        update(); //here I would add maybe 3 to a player's x pos and redraw in draw()
        draw();
    }
    window.requestAnimationFrame(loop, canvas);
}
但是,通过在线查看各种SpriteKit教程,许多人使用
SKAction
在屏幕上移动节点


我的问题是,在SpriteKit中不断更新节点的位置是非正统的,还是不受欢迎的,我应该习惯使用动作,为什么?

不,不受欢迎,知道如何手动执行这些操作很好。如果它相当简单,有规律的移动,那么
SKAction
就可以了。对于更复杂的内容(SKActions实际上可能变得复杂,精灵跟随路径和贝塞尔曲线等),使用
Update()
函数,迭代精灵(使用
EnumerateChildNodeWithName
或类似工具),并根据需要移动它们

您可以在
Update()
中组合2-move精灵,并使用SKAction设置它们的动画,反之亦然


请记住,您不会调用
Update()
;它由游戏引擎每秒自动调用60次。它会经过一段时间,因此您可以精确计算上次调用Update()以来的时间(不总是1/60秒)

您可以在Update函数之外使用SKActions,也可以在Update函数中增加/减少位置或旋转,这取决于您自己。