cocos2d-x icon indicating copy to clipboard operation
cocos2d-x copied to clipboard

使用Sprite * TMXLayer::getTileAt(const Vec2& pos)函数丢失filp信息

Open shysean opened this issue 10 years ago • 1 comments

在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?

shysean avatar Jan 10 '15 09:01 shysean

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);

ljluestc avatar Sep 18 '23 00:09 ljluestc