SpriteKit - 创建随机对象并使用deltatime

时间:2015-11-20 16:37:13

标签: swift random sprite-kit skaction timedelta

在我的游戏中,我想每隔几秒调用一个函数,从数组中创建随机对象。目前我正在通过SKAction移动这个对象:

func createRandmoObject() {
    let random = arc4random_uniform(4)
    randomObject = randomObjects[random]

    randomObject.runAction(SKAction.moveTo(CGPoint(x: randomObject.position.x, y: 0 - randomObject.size.height), duration: 3))

    addChild(randomObject)

}

当对象击中播放器时,它会被移除,然后再次调用该函数。这种方法的问题是我发现物体的运动并不总是平滑的,当帧速率因某种原因而下降时,会发生口吃。现在我知道如何在更新方法中计算增量时间,但我不确定当对象不断变化而不是总是在屏幕上时如何将它应用于对象,并且还有其他类似的对象(让我们想到他们是敌人,还有另一个创造另一个敌人的功能)那么如何让这些随机物体按照delta时间而不是SKAction移动呢?

1 个答案:

答案 0 :(得分:0)

虽然您可以在spritekit项目中使用SKAction,但如果您的游戏基于物理,那么您应该将更新方法用于所有精灵运动。 SKactions适用于简单的游戏,但如果您的游戏涉及碰撞和随机移动,则可以选择更新方法。