cocos2d-x
cocos2d-x copied to clipboard
使用Sprite * TMXLayer::getTileAt(const Vec2& pos)函数丢失filp信息
在Tiled Editor编辑tile时,使用了Flip功能(快捷键X)。
auto map = TMXTiledMap::create("map.tmx"); this->addChild(map);
这时所有tile的翻转显示正常,被翻转的tile的gid应该包含了翻转信息gid的值类似-2147483639
auto layer = m_map->getLayer("mapLayer"); auto sprite = layer->getTileAt(Vec2(1, 1));
这时Tile应该变成了一个Sprite,同时翻转显示错误,这时应该如何获取Filp信息或者是个Bug?
auto layer = m_map->getLayer("mapLayer");
auto gid = layer->getTileGIDAt(Vec2(1, 1)); // Get the GID at the desired position
// Check for horizontal and vertical flips
bool horizontalFlip = (gid & TMX_FLIP_HORIZONTALLY) != 0;
bool verticalFlip = (gid & TMX_FLIP_VERTICALLY) != 0;
// Create a sprite and set flip properties
auto sprite = Sprite::createWithSpriteFrame(layer->getTileSet()->getTileForGID(gid));
sprite->setFlippedX(horizontalFlip);
sprite->setFlippedY(verticalFlip);