2015-01-09 2 views
0

Я пытаюсь создать атлас текстуры с использованием существующих активов из предыдущего ресурса изображения, созданного вне Xcode/моей машины.Создание текстур altas в SpriteKit из существующей текстурной атлас jpg

Импорт изображения в Xcode не «разделяет» его, и я не уверен, как сообщить Xcode/SpriteKit, где расположены «атласы».

За исключением использования редактора изображений и ручного приема каждого изображения в качестве актива, как я могу убедить Xcode, что изображение действительно является атласом?

И, наконец, стоит ли даже использовать атлас, так как мне приходится циклически перемещаться по изображению, чтобы сделать анимацию; лучше ли мне жестко кодировать (!) позиции x/y полосы атласа и делать какой-то код вращения/цикла в SKAction?

+0

Первый вопрос остается неясным. Является ли это Xcode-созданным атласом той же версии Xcode? Тогда вы сможете заставить его работать в комплекте - так или иначе. А может и нет. Наличие исходных изображений будет намного проще в будущем, и из-за этого я думаю, что вы пытаетесь решить неправильную проблему здесь. Второй вопрос субъективен, полностью зависит от кода и контекста, и на него нельзя ответить в целом. Хотя, если есть сомнения, предпочитают использовать атлас, его профи обычно перевешивают любые минусы. – LearnCocos2D

+0

Исходное изображение - это старый jpg-файл с фреймами, скрепленными вместе - он никогда не видел Xcode до сегодняшнего дня. В принципе, это уже атлас изображения, поэтому сделать его одним из SKTextureAtlas, вероятно, будет полезно, но может быть больше боли, которую я хочу испытать :) –

+1

Если он не был создан с Xcode, он не имеет необходимого plist и имя/папка. Вы должны тщательно перестроить это. Бьюсь об заклад, вам будет легче извлекать изображения или просто использовать разные изображения (т. Е. Бесплатно получить их на OpenGameArt). – LearnCocos2D

ответ

0

Решено разбить старый атлас на отдельные изображения, а затем загрузить их в папку .atlas. Также решили загрузить все имена файлов и выполнить .sort в массиве, затем пройти через этот массив и загрузить имена файлов в «правильном» порядке.

функция сниппет ниже:

func AssignTextureAtlas(atlas: SKTextureAtlas) 
{ 
    var arrTextureNames: Array<String> = [] 

    //Create texture atlas array 
    for (var i = 0; i < atlas.textureNames.count; i++) 
    { 
     var myText = atlas.textureNames[i] as String 
     arrTextureNames.append(myText) 
    } 

    arrTextureNames.sort({$0 < $1}) 
    for (var i = 0; i < arrTextureNames.count; i++) 
    { 
     var myTexture = atlas.textureNamed(arrTextureNames[i]) 
     arr.insert(myTexture, atIndex: 0) 
    } 
    //...more code here, until: 

    self.runAction(SKAction.repeatActionForever(SKAction.animateWithTextures(arr, timePerFrame: 0.1, resize: false, restore: true)), withKey: "TEST") 

} 
+0

yup, что имеет смысл – LearnCocos2D

Смежные вопросы