0

プレイヤーがタイル マップ エディターを使用して作成されたアイソメCCSpriteマップの周りに sをドラッグ アンド ドロップできるゲームを開発しています。

vertexZ の自動並べ替えを可能にするために、 のdepthTestオプションを有効に[CCDirector sharedDirector]しましたAppDelegate

CCSprites s が更新されるたびに、positionこの関数を呼び出します

- (void)updateVertexZ:(CGPoint)tilePos tileMap:(CCTMXTiledMap *)tileMap
{
    float lowestZ = -(tileMap.mapSize.width + tileMap.mapSize.height);
    float currentZ = tilePos.x + tilePos.y;
    self.vertexZ = lowestZ + currentZ;
}

スプライトを正しく並べ替えます。

このようなスプライトがインスタンス化されるたびに、次のshaderProgramように設定します。

self.shaderProgram = [[CCShaderCache sharedShaderCache]programForKey:kCCShader_PositionTextureColorAlphaTest];

ここで、2 つのスプライトを次のように並べると (x はスプライト、0 は空):

0 x 
x 0

等尺性の観点から観察されます。それらは確かに正しく配置されています。ただし、最初の (最も近い) スプライトに沿って、1 ピクセルの境界線が表示されます - 画像を参照してください。それは背景の床です - あまりクールではありません。

ここに画像の説明を入力

この境界線が表示されるのはなぜですか?どうすれば取り除くことができますか?

4

0 に答える 0