我觉得我错过了一些基本概念,就是为什么我在移动瓷砖地图时会出现闪烁。
我创建了一个图层。在其中,我添加了一个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,我只会在屏幕边缘附近的左右两侧看到它们。
最终,我只想平滑地滚动瓷砖地图。任何帮助都会受到高度赞赏,因为我似乎无法开始这个项目。
答案 0 :(得分:0)
对我来说,工作解决方案是将ccConfig.h中的CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL从1更改为0.在cocos / base /中找到ccConfig.h。