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