我有一個用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)並將其隱藏在末尾(以顯示外部節點)。畢竟,將隱藏的內部節點報告給它的原始維度 –