-3

nsmutable 配列内の 1 つのインデックスから別のインデックスにイメージ テクスチャを切り替える方法が必要です。

balloonTextures = [NSMutableArray array];

    // Add each of the balloon textures into the balloon textures array
    [balloonTextures addObject:[SPTexture textureWithContentsOfFile:@"greentutorial.png"]];
    [balloonTextures addObject:[SPTexture textureWithContentsOfFile:@"redtutorial.png"]];

    SPImage *image = [SPImage imageWithTexture:[balloonTextures objectAtIndex:0]];
    image.x = 0;
    image.y = 10 ;
    [playFieldSprite addChild:image];
    [image addEventListener:@selector(onTouchBalloon:) atObject:self forType:SP_EVENT_TYPE_TOUCH];

ご覧のとおり、イメージ テクスチャ greentutorial を含むイメージを持つ NSMutableArray があります。20秒で呼び出されるこのメソッドで赤いテクスチャ(赤いチュートリアル)に切り替えたいと思います。

 -(void)changeColor{

 image = [SPImage imageWithTexture:[balloonTextures objectAtIndex:1]];

  }

ただし、まったく機能していません。メソッドに以下のコードを追加すると機能するため、画像が呼び出されていることがわかります。

  image.x = 300;
4

1 に答える 1

1

インデックスを切り替えるには、

-(void) swapTexturesAtIndex:(int) index1 and:(int) index2{
    id temp1 = [balloonTextures objectAtIndex:index1];
    id temp2 = [balloonTextures objectAtIndex:index2];
    [balloonTextures replaceObjectAtIndex:index1 withObject:temp2];
    [balloonTextures replaceObjectAtIndex:index2 withObject:temp1];
}

編集1:

このようなものを使用してみませんか?

-(void)changeImageTextureFromIndex:(int) index{

 image = [SPImage imageWithTexture:[balloonTextures objectAtIndex:index]];

  }
于 2013-05-11T11:52:16.203 に答える