Ошибка при загрузке текстуры частиц в Spritekit?

Моя текстура частиц правильно отображается в системе частиц в SpriteKit. Но как только приложение запускается, изображение не распознается:

SKTexture: ошибка при загрузке ресурса изображения: "XP.png"

Я пытался добавить изображение в Images.xcassets, но система частиц его не видит. Или просто в той же папке, что и эффект частиц, но тогда изображение не распознается при запуске приложения.

Вы знаете, как это исправить?

Изменить:
Вот код:

//2D particle
    func createSKSParticle(str:String)->SKEmitterNode{
        let path : String = NSBundle.mainBundle().pathForResource(str, ofType: "sks") as String!
        let particle : SKEmitterNode = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as SKEmitterNode
        return particle
    }

    func addParticle(nameParticle: String){
        let p : SKEmitterNode = createSKSParticle(nameParticle)
        let texture = SKTexture(imageNamed: "xpPart") //xpPart is in Images.xcassets .... 
        p.particleTexture = texture //HERE is the solution
        self.addChild(p)
    }

Спасибо


person Paul    schedule 22.04.2015    source источник
comment
Несколько моментов для рассмотрения... Текстура, которую вы предоставили, это SKTexture или просто изображение? Вы почистили свой проект? Если изображение не в формате PNG, пробовали ли вы другой формат файла?   -  person sangony    schedule 22.04.2015
comment
@sangony Спасибо за комментарий, я почистил проект, это изображение, png. Я использую SceneKit с классом spriteKit, который связан с sceneKit через overlaySKScene. Однако путь к изображению правильный, потому что система частиц показывает правильное изображение. Тогда я не знаю, почему он не читает его?   -  person Paul    schedule 22.04.2015
comment
Я не знаю вашего кода, так что, возможно, вы уже пробовали это... Вы должны сохранить свое изображение как SKTexture. Если вы используете изображение напрямую, это может быть корнем вашей проблемы.   -  person sangony    schedule 22.04.2015
comment
@sangony спасибо, как вы связываете два: SKEmitterNode и SKTexture? Я отредактировал свой пост с некоторым кодом.   -  person Paul    schedule 22.04.2015
comment
Я предполагаю, что вы устанавливаете свойство текстуры вашего излучателя частиц с вашим собственным изображением. В этом случае вам придется использовать что-то вроде этого: SKTexture *myTexture = [SKTexture textureWithImageNamed:@myPicture.png];   -  person sangony    schedule 22.04.2015
comment
@sangony да, но тогда как сказать эмиттеру, что я хочу эту текстуру? Добавил текстуру из окна системы частиц, не по коду, и не нахожу способа (типа переменная emitter.image = ..., emitter.texture = ..., в документации?   -  person Paul    schedule 22.04.2015
comment
Плохо, я думал, ты делаешь все это из кода. Не знаю, как решить эту проблему сейчас...   -  person sangony    schedule 22.04.2015
comment
@sangony На самом деле вы были правы, я могу просто добавить: myEmitter.particleTexture = mySkTexture и текстура будет установлена ​​в Images.xcassets, и это работает! Если вы хотите опубликовать это как ответ, я отмечу это. В противном случае большое спасибо за поддержку.   -  person Paul    schedule 23.04.2015
comment
Рад слышать, что у вас все получилось!   -  person sangony    schedule 23.04.2015


Ответы (1)


Ручное назначение текстуры SKEmitterNode должно решить проблему:

SKTexture *myTexture = [SKTexture textureWithImageNamed:@"myPicture.png"];

Дополнительную информацию можно найти в документы SKEmitterNode.

person sangony    schedule 23.04.2015