如果我不用SKAction直接修改SKSpriteNode的位置和旋转,SpriteKit是否会应用物理?

例如,如果我想自己制作自定义animation,并通过x += 10编程方式每隔一帧移动一个SKSpriteNode,那么Sprite Kit是否仍能正确应用物理,还是必须始终使用SKAction?

手动移动一个物理实体的节点是可能的,无论你如何或何时做。 但无论如何,这是不推荐的,因为它会对物理模拟产生不利影响。 节点(视图)可能与1帧的主体位置不同步,并且您可能会将物体移动到物理引擎将强行解决的碰撞中,导致跳跃,抖动,爆炸速度或跳过碰撞。

当你使用物理时,坚持通过力,冲动或直接改变物体速度来移动物理体。

不,你不必使用SKAction移动SKSpriteNode 。 这种方法适用于我:

 - (void)update:(CFTimeInterval)currentTime { myNode.position = CGPointMake(myNode.position.x + 0.1,myNode.position.y); } 

所有物理学都按预期工作