在cocos2d-x中滚动TMX映射时抖动线

时间:2015-06-26 02:50:01

标签: cocos2d-x

我觉得我错过了一些基本概念,就是为什么我在移动瓷砖地图时会出现闪烁。

我创建了一个图层。在其中,我添加了一个TMXTiledMap。

_tileMap = TMXTiledMap::create("TMX/32Map.tmx");
_tileMap->setScale(1.f);
_floorLayer = _tileMap->getLayer("Floor");
this->addChild(_tileMap);
for(const auto& l : _tileMap->getChildren()) {
    static_cast<SpriteBatchNode*>(l)->getTexture()->setAliasTexParameters();
}
this->scheduleUpdate();

在更新中,我移动图层。

Vec2 newPos = this->getPosition();
newPos.x = (newPos.x - 1);
newPos.y = (newPos.y - 1);
this->setPosition(newPos);

我意识到我没有通过dt移动它。如果我按dt移动它,我会得到整个层的整体跳跃。我理解这是由于它如何渲染部分像素。但是,如果我像上面那样将它移动一个像素,我会在屏幕上看到这个#看起来的一组线条,在顶部和底部大约64个像素左右,从左右开始大约224个像素

那时窗口是1024x768。如果我制作一个320x240的窗口,我看不到这些线条,如果我将它设为640x480,我只会在屏幕边缘附近的左右两侧看到它们。

最终,我只想平滑地滚动瓷砖地图。任何帮助都会受到高度赞赏,因为我似乎无法开始这个项目。

1 个答案:

答案 0 :(得分:0)

对我来说,工作解决方案是将ccConfig.h中的CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL从1更改为0.在cocos / base /中找到ccConfig.h。