设置精灵的纹理不起作用

时间:2012-05-02 18:07:19

标签: objective-c cocos2d-iphone

我正试图用这个来设置纹理:

[[self setSpriteByTag] setTexture:[[CCTextureCache sharedTextureCache] addImage:[NSString stringWithFormat:@"%@0001.png",face]]];

[self setSpriteByTag]返回一个sprite face时,它是一个图像字符串,它们都可以,因为我已经记录了它们。

此精灵是ccscrolayer中网页的子代: 图层页面的一页:

 CCLayer *page1 = [[CCLayer alloc] init];
        BACK.position=ccp(screenSize.width/2,screenSize.height/2);
         [page1 addChild:BACK];

当我试图用我在这里写的命令改变BACK的图像时。 发生的事情是我看到一个白色的屏幕。 我已检查图像是否在我的资产中。

可能是什么问题? 我更改了一个页面的子级精灵的facr?

编辑

这是给我精灵BACK的函数:

-(CCSprite*)setSpriteByTag 
{

     int currentPage=[scroller currentScreen];
     [globals sharedGlobals].currentPageG=currentPage; //move to touch ended?
     currentPage=currentPage+1;
     //NSLog(@"PAGE:%d",currentPage);



    if(currentPage==1)
    {[globals sharedGlobals].WhatFace =@"BeastFace";  return  BACK;} 
    else if(currentPage==2)
    {[globals sharedGlobals].WhatFace =@"BlueFace"; return BACK1;}
    else if(currentPage==3)

2 个答案:

答案 0 :(得分:0)

只有在资源中没有图像的情况下它变白了。我检查了运行相同的代码..它工作正常..如果我把错误的图像名称不存在..它变为白色。 ..请检查图像

[NSString stringWithFormat:@"%@0001.png",face]

确定图像名称中有问题..:)

答案 1 :(得分:0)

[NSString stringWithFormat:@"%@0001.png",face]

您的文件名必须格式为“xxxxx0001.png”。假设face变量是字符串“BeastFace”,那么要加载的文件名将是“BeastFace0001.png”。

到目前为止显而易见但请记住,文件“Beastface0001.png”不会加载到设备上,也不会“beastface0001.png”,因为iOS设备使用区分大小写的文件系统。它可以在iOS模拟器上运行。