Я создаю свою первую игру с комплектом спрайтов и недавно прочитал статью, в которой говорится, что для повышения производительности используется SKTextureAtlas.SpriteKit: Использование SKTextureAtlas вызывает неправильный физический корпус
Итак, я перенес все изображения спрайтов в упорядоченные папки .atlas
и обновил код соответствующим образом. Тем не менее, теперь у моих спрайтов странные физические тела (в основном сверхразмерные).
Например, у моего игрового спрайта есть три состояния: Летающий (плоский), Полет и Полет вниз. Три изображения довольно похожи, с небольшими вариациями (стрелки, направленные вверх, вверх, вниз).
Прежде чем перейти на текстурные атласы, физическое тело было красивым пятном на изображении. Однако теперь он намного больше изображения и слегка растягивается по оси y.
Вот моя структура player.atlas файл:
игрок летящих-iphone.atlas:
- [email protected]
- играющим летающий [email protected]
- [email protected]
- плеер[email protected]
- [email protected]
- [email protected]
Вот пример моего кода: (Player является подклассы SKSpriteNode)
let textureAtlas = SKTextureAtlas(named: "player-iphone")
let playerFlyingTexture = textureAtlas.textureNamed("player-flying")
let player = Player(texture: playerFlyingTexture, color: UIColor.clearColor(), size: CGSizeMake(100.0, 100.0))
let physicsBody = SKPhysicsBody(texture: playerFlyingTexture, size: CGSizeMake(100.0, 100.0))
physicsBody.dynamic = true
physicsBody.affectedByGravity = true
physicsBody.usesPreciseCollisionDetection = false
physicsBody.categoryBitMask = CollisionCategories.Player
physicsBody.contactTestBitMask = CollisionCategories.Enemy
physicsBody.collisionBitMask = CollisionCategories.EdgeBody
physicsBody.allowsRotation = false
player.physicsBody = physicsBody
Хотя у вас уже есть ответ, я бы предложил использовать каталог активов Xcode для SKtextures. Начиная с Xcode 7 вы можете использовать каталог активов для текстурных изображений, и Apple фактически говорит, что это лучший способ сделать это. Поэтому я думаю, что эти статьи, которые говорят о папках .atlas, устарели. – crashoverride777