我对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中的位置是不正统的,还是不赞成,我应该习惯使用动作,为什么?
答案 0 :(得分:2)
不,不是不赞成,并且知道如何手动完成这些事情是件好事。如果它相当简单,经常移动,那么SKAction
就可以了。对于更复杂的东西(并且SKActions实际上可能变得复杂,精灵跟随路径和贝塞尔曲线等),使用Update()
函数,迭代精灵(使用enumerateChildNodesWithName
或类似)并根据需要移动它们
你可以结合2 - 移动Update()
中的精灵,并用SKAction动画它们,反之亦然。
请记住,你没有打电话给Update()
;它被游戏引擎自动调用60次。它会被传递一段时间,因此您可以精确计算自上次调用Update()以来的确切时间(不总是1/60秒)