У меня есть большой прямоугольник SKPhysicsBody
, созданный с помощью SKPhysicsBody(edgeLoopFrom:...)
. Внутри этого физического тела есть куча шаров, которые отскакивают. Когда появляется уведомление, я показываю вид снизу экрана. Я хочу изменить размер 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 к внутреннему узлу, затем используйте внутренний узел, чтобы сделать анимацию и стать похожим на внешнюю стену (но без физики) и скрыть ее в конце (так что покажите внешний узел). В конце концов, сообщите о скрытом внутреннем узле в его исходное измерение –