1

以下のメソッドでは、switch-case を使用してオブジェクトを配列に追加します。

-(void)addBall   {
    switch (ballKind)    {
        case greenBall:
        [ballArray addObject:[self createBallObject:CGPointMake(xPos*(s.width/480.0), yPos*(s.height/320.0)) ballStringName:@"greenBall.png"]];
        break;

    case redBall:
        [ballArray addObject:[self createBallObject:CGPointMake(xPos*(s.width/480.0), yPos*(s.height/320.0)) ballStringName:@"redBall.png"]];
        break;

    case blueBall:
        [ballArray addObject:[self createBallObject:CGPointMake(xPos*(s.width/480.0), yPos*(s.height/320.0)) ballStringName:@"blueBall.png"]];
        break;

    default:
        break;
    }
}

createBallObject は CCPhysicsSprite を返します。また、ballArray を返すメソッドもあります。

-(NSMutableArray*)getBallArray    {

  return ballArray;
}

ballArray 内の createBallObjects (各 ballArray 要素がそれぞれの CCPhysicsSprite になる) のそれぞれの CCPhysicsSprite 戻り値にアクセスし、同様にそれらの b2Body プロパティにアクセスして、for ループでそれらを反復処理できるようにします。どうすればこれを達成できますか?

4

1 に答える 1

1

ballArray の特定のインデックスにある CCPhysicsSprite オブジェクトの 1 つにアクセスするには、次のようにします。

int index; // Set this to which index of the array you wish to view.
CCPhysicsSprite *sprite = [ballArray objectAtIndex: index]);

ballArray のすべての CCPhysicsSprite オブジェクトにアクセスする場合は、次のようにします。

int count = [myColors count];

for (i = 0; i < count; i++)
{
    CCPhysicsSprite *sprite = [myColors objectAtIndex: count];
}

これがあなたの質問に答えることを願っています。

于 2013-06-06T04:01:15.533 に答える