我正在做一个标准的kobold2d tilemap游戏,我试图从tilemap编辑器加载一个tile map,一个.tmx文件
标准代码非常简单:
-(id) init
{
self = [super init];
if (self)
{
// add init code here (note: self.parent is still nil here!)
CCTMXTiledMap *tiledMap = [CCTMXTiledMap tiledMapWithTMXFile:@"background.tmx"];
[self addChild:tiledMap z:-1];
tiledMap.position = CGPointMake(-500, -300);
for( CCTMXLayer* child in [tiledMap children] ) {
[[child texture] setAntiAliasTexParameters];
}
// uncomment if you want the update method to be executed every frame
//[self scheduleUpdate];
}
return self;
}
我的tilemap是 40x35 图块,每个图块为: 64x64 像素。
但是,我得到了以下结果,看起来在图层的每一行之间都有一条黑线:
我的tilemap看起来像:
答案 0 :(得分:1)
cocos2d中相当标准的tilemap问题。
快速修复在ccConfig.h中称为“通过拉伸纹素来修复工件”,但它是一种带有混叠副作用的黑客解决方法,尤其是在缓慢滚动或缩放时可见。
实际修复需要将tmx节点,其父节点和所有祖父母的所有位置设置为精确的像素位置。在非Retina设备上,这意味着将x / y坐标转换为int,在Retina设备上,它意味着舍入到下一个最近的0.5坐标(即10.3变为10.5,10.8变为11.0)。
PS:KoboldTouch和Kobold Kit(精灵套件)tilemap渲染器没有此黑线伪影问题。