我有一个用SKPhysicsBody(edgeLoopFrom:...)
创建的大型长方形SKPhysicsBody
。在那个物理体里面有一堆弹跳的球。当出现通知时,我会从屏幕底部显示一个视图。我想调整SKPhysicsBody
的大小,以便球在屏幕上弹出此通知视图。调整SKPhysicsBody边缘并保持里面的儿童
我现在要做的就是
func updateWalls() {
let wallInsets = UIEdgeInsetsMake(bottomWallInset, 0, 0, 0)
scene.physicsBody = SKPhysicsBody(edgeLoopFrom:UIEdgeInsetsInsetRect(bounds, wallInsets))
}
换句话说,我只是用一个新的新维度取代旧的物理身体。这是有效的,除了如果在旧尺寸和新尺寸之间的区域中的任何球是,它们被困在墙壁外并从墙壁外弹出并脱离世界。
是否有一种优雅的方式来创建旧墙和新墙之间的过渡动画,以便位于底部的任何球都被“扫掠”到新维度中,并保证保留在墙内? You can't scale an SKPhysicsBody
directly。
感谢您的帮助。两个物理实体之间的转换将与我现在所做的相同,我只是将其中一个替换为另一个。我仍然坚持如何做动画。 – bcattle
尝试关闭physicalBody到内部节点,然后使用内部节点制作动画,并变成像外部墙(但没有physicsBody)并将其隐藏在末尾(以显示外部节点)。毕竟,将隐藏的内部节点报告给它的原始维度 –