【问题标题】:SpriteKit - SKActions or updating positions in update functionSpriteKit - 更新功能中的 SKActions 或更新位置
【发布时间】:2016-04-29 02:45:10
【问题描述】:

我对 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 中不断更新节点的位置是非正统的,还是不受欢迎的,我应该习惯使用动作,为什么?

【问题讨论】:

  • 你可以在更新函数之外使用SKActions,或者在更新函数中增加/减少位置或旋转,这取决于你。

标签: swift html sprite-kit skaction


【解决方案1】:

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

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

记住你不要打电话给Update();它由游戏引擎每秒自动调用 60 次。它会经过一段时间,因此您可以准确计算自上次调用 Update() 以来已经过去了多长时间(并非总是 1/60 秒)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多