我正在开发一个游戏,玩家可以在使用平铺地图编辑器创建的等距地图周围拖放CCSprite
s 。
为了允许自动 vertexZ 重新排序,我depthTest
在[CCDirector sharedDirector]
我的AppDelegate
.
每当更新CCSprite
sposition
时,我都会调用此函数
- (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];
现在,当两个精灵像这样对齐时(x 是精灵,0 是空的):
0 x
x 0
并从等轴测角度观察。它们确实放置正确。然而,沿着第一个(最近的)精灵,一个 1px 的边框是可见的 - 见图片。这是背景中的地板——不是很酷。
为什么这个边框是可见的,我怎样才能摆脱它?