2015-04-22 74 views
0

我的粒子纹理在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) 
    } 

感谢

+0

需要考虑的几点......您提供的材质是SKTexture还是图像?你有没有“清理”你的项目?如果图像不是PNG图像,您是否尝试过另一种文件格式? – sangony

+0

@sangony感谢您的评论,我清理了这个项目,它是一个图像,一个PNG。我正在使用SceneKit,它有一个spriteKit类,它通过'overlaySKScene'与sceneKit链接。图像的路径是正确的,因为粒子系统显示正确的图像。那么,我不知道它为什么不读它? – Paul

+0

我不知道你的代码,所以你可能已经尝试过了......你必须将你的图像存储为SKTexture。如果您直接使用图片,它可能是您问题的根源。 – sangony

回答

0

手动分配纹理的SKEmitterNode应该解决的问题:

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

更多信息,可以发现SKEmitterNode docs