У меня есть большой прямоугольный SKPhysicsBody
, созданный с помощью SKPhysicsBody(edgeLoopFrom:...)
. Внутри этого физического тела находится куча шаров, которые подпрыгивают. Когда появляется уведомление, я показываю вид снизу экрана. Я хочу изменить размер SKPhysicsBody
, чтобы шарики отскакивали от этого вида уведомления, пока оно отображается на экране.
Что я делаю сейчас
func updateWalls() {
let wallInsets = UIEdgeInsetsMake(bottomWallInset, 0, 0, 0)
scene.physicsBody = SKPhysicsBody(edgeLoopFrom:UIEdgeInsetsInsetRect(bounds, wallInsets))
}
Другими словами, я просто заменяю старое физическое тело новым с новыми измерениями. Это работает, за исключением того, что если какие-либо шары находятся в области между старыми измерениями и новыми измерениями, они застревают в ловушке, отскакивают от внешней стены и выпадают из мира.
Есть ли элегантный способ анимировать переход между старой и новой границами стены, чтобы любые шары, лежащие на дне, «перемещались» в новые измерения и гарантированно оставались внутри стены? Вы не можете масштабировать SKPhysicsBody
напрямую.