为什么SpriteKit找不到我的图片?

时间:2013-12-17 02:09:55

标签: xcode sprite-kit

我正在关注Ray Wenderlich网站上的SpriteKit教程。我用SpriteKit模板创建了一个项目。问题是我的图像显示为一个大的白色矩形,里面有一个大的红色X.日志中没有错误。我也在阅读SpriteKit编程指南和Texture Atlas帮助。我假设这是项目设置问题或文件夹结构问题。我是Xcode的新手。这是我的项目在Xcode中的样子:

MyGameProj (the top level, with the little blue xcode icon)
-->MyGameProj (yellow folder)
 -->Assets (yellow folder)
   -->Atlases (yellow folder)
     -->dungeon.atlas (blue folder)
       dungeon_1.jpg
       dungeon_2.jpg
       dungeon_3.jpg
       hero_trans.gif
  various .h and .m files

首先,我在Assets文件夹之外有MyGameProj个文件夹。没有工作

这是代码。这在MySceneinitWithSize()

之内
SKTextureAtlas *atlas = [SKTextureAtlas atlasNamed:@"dungeon"];
SKTexture *texture = [atlas textureNamed:@"hero_trans.gif"];
self.player = [SKSpriteNode spriteNodeWithTexture:texture];
self.player.position = CGPointMake(100, 100);
[self addChild:self.player];

我已进入构建设置并打开了图集生成。

1 个答案:

答案 0 :(得分:3)

我认为你不能在Sprite-Kit中使用带有纹理地图集的.gif文件。我已经尝试过你的代码了。将.gif文件放在图集之外并使用 相反,spriteNodeWithImageNamed:有效。

测试1:与你相同的代码,dungeon.atlas中的.gif:不起作用

SKTextureAtlas *atlas = [SKTextureAtlas atlasNamed:@"dungeon"];
SKTexture *texture = [atlas textureNamed:@"Seven_segment_display-animated.gif"];
self.player = [SKSpriteNode spriteNodeWithTexture:texture];
self.player.position = CGPointMake(100, 100);
[self addChild:self.player];

测试2:使用来自dungeon.atlas的.gif spriteNodeWithImageNamed:创建的节点:不起作用

self.player = [SKSpriteNode spriteNodeWithImageNamed:@"Seven_segment_display-animated.gif"];
self.player.position = CGPointMake(100, 100);
[self addChild:self.player];

测试3:将.gif文件加载到项目本身(不是图册),例如资产文件夹:此工作

self.player = [SKSpriteNode spriteNodeWithImageNamed:@"Seven_segment_display-animated.gif"];
self.player.position = CGPointMake(100, 100);
[self addChild:self.player];