在没有物理或 SKActions 的情况下使用 SpriteKit

Using SpriteKit Without Physics or SKActions

我想在不使用 SKPhysicsBody 或 SKActions 的情况下移动节点。这是我的

override func update(currentTime: CFTimeInterval) {
    /* Called before each frame is rendered */
    let deltaT = currentTime - timeLast
    node.position.y += CGFloat(deltaT * 3) //node is an SKShapeNode
    timeLast = currentTime
}

节点没有出现在屏幕上。如果我删除此代码,默认位置将设置为屏幕的中心,效果很好。我上面的方法有什么问题?

问题最终是 timeLast 被初始化为 0,所以 currentTime 的值以千为单位,导致节点在调用更新后立即定位在屏幕外