1

私はこれでテクスチャを設定しようとしています:

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

[self setSpriteByTag]スプライトを返すときfaceは画像文字列であり、ログに記録したため、両方とも問題ありません。

このスプライトは次のページの子ですccscrolayer: レイヤ ページの 1 ページ:

 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]

M 確かに問題はイメージ名にあります.. :)

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

ファイル名は「xxxxx0001.png」の形式にする必要があります。顔変数が文字列「BeastFace」であると仮定すると、ロードするファイル名は「BeastFace0001.png」になります。

これまでのところ明らかですが、iOS デバイスは大文字と小文字を区別するファイル システムを使用するため、ファイル "Beastface0001.png" はデバイスに読み込まれず、"beastface0001.png" も読み込まれないことに注意してください。ただし、iOS シミュレーターでは動作します。

于 2012-05-02T20:01:35.480 に答える