SpriteKit - SKActions或更新更新功能中的位置

时间:2016-04-29 02:45:11

标签: swift html5 sprite-kit skaction

我对SpriteKit很陌生,大约4个月来玩HTML5。使用Mark Wihlberg's 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中的位置是不正统的,还是不赞成,我应该习惯使用动作,为什么?

1 个答案:

答案 0 :(得分:2)

不,不是不赞成,并且知道如何手动完成这些事情是件好事。如果它相当简单,经常移动,那么SKAction就可以了。对于更复杂的东西(并且SKActions实际上可能变得复杂,精灵跟随路径和贝塞尔曲线等),使用Update()函数,迭代精灵(使用enumerateChildNodesWithName或类似)并根据需要移动它们

你可以结合2 - 移动Update()中的精灵,并用SKAction动画它们,反之亦然。

请记住,你没有打电话给Update();它被游戏引擎自动调用60次。它会被传递一段时间,因此您可以精确计算自上次调用Update()以来的确切时间(不总是1/60秒)