私はCCSpriteBatchNode
をcocos2d olnyで使用すると、zオーダーのスプライトを子として追加することができることを理解しました(これは明らかです)。ココス2dを使ってアイソメトリックマップのスプライトを作成する最も良い方法
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"token_default.plist"];
CCSpriteBatchNode *tokenSpriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"token_default.png"];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"objects_default.plist"];
CCSpriteBatchNode *objectsSpriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"objects_default.png"];
CCSprite *token = [[[CCSprite alloc] initWithSpriteFrameName:@"token_SE.png"] autorelease];
[token setPosition:tokenSpawnPoint];
CCSprite *enemy = [[[CCSprite alloc] initWithSpriteFrameName:@"token_blak_SE.png"] autorelease];
[enemy setPosition:enemySpawnPoint];
CCSprite *houseA = [[[CCSprite alloc] initWithSpriteFrameName:@"house_small.png"] autorelease];
[houseA setPosition:[self randomHousePosition]];
CCSprite *houseB = [[[CCSprite alloc] initWithSpriteFrameName:@"house_big.png"] autorelease];
[houseB setPosition:[self randomHousePosition]];
[tokenSpriteSheet addChild:token];
[tokenSpriteSheet addChild:enemy];
[objectsSpriteSheet addChild:houseA];
[objectsSpriteSheet addChild:houseB];
と私は
[_isoMap addChild:objectsSpriteSheet];
[_isoMap addChild:tokenSpriteSheet];
..次のように表示リストに追加する必要があるため、私は他の家との間に単一のトークンのz順序を変更することができます方法はありません...
彼らは常にhでレンダリングされます私は
ところでこれらのバッチノードの順序を変更するまでウーズは、私はそれは、スプライトの座標を使用してスプライトを注文することが可能となったそう...一つの大きな単一バッチノードにすべてのスプライト芸術「マージ」でき
[fullSpriteSheet reorderChild:token z:token.position.y];
私はちょっとそれに固執しています......それを達成する方法はありますか?スプライトバクトノードが違うのですか? 2つのバッチ技術をプログラムでマージすることは可能ですか? (またはそのような何か)
iはKnightFight、彼は代わりにバッチノードで、CCSpriteFrame
とCCSprite
のsetDisplayFrame
方法を使用.. LozArcherによってgithubの上で本当に面白い開いているプロジェクトを見つけました...しかし、私は以来、それを実行することはできません私が(CCSprite
のような)CCNode
のvertexZ
プロパティを変更することは、実際にそのZ位置を変更する(それが少し大きくなりますことを発見したcocos2dの古いバージョン(明らかにXcodeの4で作業していない)