im игра, которую я разрабатываю, у меня есть различные узлы, которые увеличивают масштаб.Масштабирование SkSpriteNodes с помощью SpriteKit
В зависимости от устройства (ipad/iphone) они имеют максимальный размер между 50-128 (выход println("\(size)")
), поэтому я должен максимальный размер должен быть 3x128, правильно?
при масштабировании происходит следующее:
- начального размера (0,0)
- окончательного размера (макс, макс) - это тех размеры, упомянутые выше
я масштабирование с таким SKAction:
let imageName = NameGenerator.defaultGenerator.generateAssetName(properties: properties)
let texture = SKTexture(imageNamed: imageName)
let node = SKSpriteNode(texture: texture)
let initialSize = CGSizeMake(1, 1)
let scaleFactor = max/initialSize.width
let actionScale = SKAction.scaleTo(scale, duration: duration)
node.runAction(scale)
пока все хорошо. приложение работает плавно, и все работает, но
- узлы сильно пикселизации во время масштабирования анимации
мои активы в настоящее время хранятся только в @3x
размером в 300x300px
вопрос
- Какой оптимальный формат текстуры (png, svg, ...) - есть ли способ использовать векторные изображения?
- Как вы думаете, оптимальный размер текстуры для этого szenario?
- Я делаю масштабирование/инициализацию справа или должен ли я сделать что-то другое, чтобы избежать пикселизации?
Я определяю максимальный размер с коэффициентом экрана, чтобы игра работала плавно и сбалансирована на всех устройствах ios. это означает, что размеры варьируются в зависимости от используемого устройства. –