プレイヤーがタイル マップ エディターを使用して作成されたアイソメCCSprite
マップの周りに sをドラッグ アンド ドロップできるゲームを開発しています。
vertexZ の自動並べ替えを可能にするために、 のdepthTest
オプションを有効に[CCDirector sharedDirector]
しましたAppDelegate
。
CCSprite
s 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 ピクセルの境界線が表示されます - 画像を参照してください。それは背景の床です - あまりクールではありません。
この境界線が表示されるのはなぜですか?どうすれば取り除くことができますか?