0

cocos-2dx 開発の初心者です。私のゲームプレイによれば、オブジェクトを格納するために 2 次元配列が必要ですが、cocos-2dx にはそのような機能を提供するデータ型がありません。そこで、別の CCArray 内に CCArray を追加することを計画しました。そこからデータを追加、取得、および入力するにはどうすればよいですか?

4

1 に答える 1

0

これはあなたのために働くはずです...

    //  this array will hold arrays :)
cocos2d::CCMutableArray< cocos2d::CCMutableArray< cocos2d::CCObject* >* > *pseudoDoubleDimArray;

void addElements()
{
    //  create an array called, say.., aRow
    cocos2d::CCMutableArray< cocos2d::CCObject* > *aRow = cocos2d::CCMutableArray< cocos2d::CCObject* >::arrayWithObjects( NULL );

    //  add elements to the array, aRow
    for( int j=0;j<5;j++ )
    {
        //  let's say the object is a ccsprite...
        cocos2d::CCSprite* sprite1  = cocos2d::CCSprite::spriteWithFile( "yourImage.png" );
        sprite1->setTag( j+100 );
        aRow->addObject( sprite1 );
    }
    // now create the other array that will hold the array just created...you could add more rows :)
    pseudoDoubleDimArray = cocos2d::CCMutableArray< cocos2d::CCMutableArray< cocos2d::CCObject* >* >::arrayWithObjects( aRow,  NULL );
}

void accessElements( )
{
    for( int i=0;i<pseudoDoubleDimArray->count( );i++ )
    {
        printf( "\n For row: %d", i+1 );
        cocos2d::CCMutableArray< cocos2d::CCObject* > *row = ( cocos2d::CCMutableArray< cocos2d::CCObject* >* )pseudoDoubleDimArray->getObjectAtIndex( i );
        for( int j=0;j<row->count();j++ )
        {
            cocos2d::CCSprite* sprite1  = ( cocos2d::CCSprite* )row->getObjectAtIndex( j );
            printf( "\n Sprite %d tag: %d",j+1, sprite1->getTag( ) );
        }
    }
}
于 2012-06-28T07:01:18.923 に答える