Я использую физические тела, которые сделаны из изображения, я помещаю файл изображения в файл Assets.xcassets и создаю spriteNode, используя имя изображения в качестве аргумента imageNamed, затем я использую текстуру spriteNodes в качестве аргумента текстуры в PhysicsBody. и то же значение размера из spriteNode, что и аргумент размера. Это работает как брелок ниже 13.0 (13.0 имеет некоторые проблемы с этим). Тем не менее, если я попытаюсь сделать то же самое с теми же файлами изображений, но в текстурном атласе spriteNode () по-прежнему выглядит отлично, но физическая структура в целом непропорциональна, я смогу выстроить их в линию, разделивwidth и height of PhysBody с разными значениями, но тот факт, что мне придется что-то делать грубо, означает, что я, вероятно, сделал что-то не так
Изображение результата при использовании spriteAtlas, имейте в виду, что крылья не 'Часть spriteNode и прямоугольник вокруг орла - это другое тело: о, нет, нет, нет
Как я создаю физические тела:
func createPigeon(size: CGSize, position: CGPoint) {
//W/o texture atlas
sprite = SKSpriteNode(imageNamed: "pigeonHitBox")
//with textureAtlas
sprite = SKSpriteNode(texture: gameScene.spriteAtlas.textureNamed("pigeonHitBox"))
sprite!.size = size
sprite!.position = position
sprite!.name = "Pigeon"
sprite!.physicsBody = SKPhysicsBody(texture: sprite!.texture!, size: size)
sprite!.zPosition = 1
sprite!.physicsBody!.isDynamic = true
defaultCollisions()
gameScene.addChild(sprite!)
}