1

我正在尝试用这个设置纹理:

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

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

这个精灵是一个页面的子页面ccscrolayer:图层页面的一个页面:

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

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

可能是什么问题呢 ?我更改作为页面子级的精灵的原因?

编辑 :

这是给我精灵 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)
4

2 回答 2

0

仅当资源中不存在图像时才会变为白色..我检查了运行相同的代码..它工作正常..如果我输入了不存在的图像的错误名称..它变为白色...请检查图像

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

我确定问题出在图像名称中.. :)

于 2012-05-02T19:06:29.663 回答
0
[NSString stringWithFormat:@"%@0001.png",face]

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

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

于 2012-05-02T20:01:35.480 回答