当前位置: 首页>>代码示例>>C++>>正文


C++ XmlNode::GetAttribute方法代码示例

本文整理汇总了C++中XmlNode::GetAttribute方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlNode::GetAttribute方法的具体用法?C++ XmlNode::GetAttribute怎么用?C++ XmlNode::GetAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XmlNode的用法示例。


在下文中一共展示了XmlNode::GetAttribute方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CreateWorldFromXml

World* World::CreateWorldFromXml(std::string xmlPath)
{
	XmlReader worldFileReader = XmlReader();
	World* ret = new World();

	worldFileReader.LoadFile(PathLoader::GetPath(xmlPath));

	// Read the <tiles> node
	auto mapNodes = worldFileReader.GetNode("maps")->GetNodes("map");

	auto it = ITBEGIN(mapNodes);
	while (it != ITEND(mapNodes))
	{
		XmlNode* element = *it;

		std::string mapName = element->GetAttribute("name").AttributeValue;
		std::string mapFilepath = element->GetAttribute("source").AttributeValue;

		Map* newMap = Map::CreateFromXml(mapFilepath);

		ret->Maps->Add(newMap);

		it++;
	}

	// Read the <tile_description> node
	auto descriptionNode = worldFileReader.FindNode("tile_description")->GetNodes("tile");
	TileDescriptionList* descList = new TileDescriptionList();
	ret->TileMapping = descList;

	descList->Entries = new PointerList<TileDescriptionEntry*>();

	auto descIt = ITBEGIN(descriptionNode);
	while (descIt != ITEND(descriptionNode))
	{
		XmlNode* element = *descIt;

		TileDescriptionEntry* newEntry = new TileDescriptionEntry();
		newEntry->id = atoi(element->GetAttribute("id").AttributeValue);
		newEntry->TextureName = element->GetAttribute("texture").AttributeValue;

		descList->Entries->Add(newEntry);

		descIt++;
	}

	return ret;
}
开发者ID:kratosaurion7,项目名称:CommsFramework,代码行数:48,代码来源:World.cpp

示例2: assert

PointerList<BaseSprite*>* Spritesheet::ExtractSprites()
{
    assert(this->ConfigFilePath != "");
    assert(this->SpritesheetFilePath != "");
    assert(this->Graphics != NULL);

    PointerList<BaseSprite*>* spriteList = new PointerList<BaseSprite*>();

    XmlReader configReader = XmlReader();
    configReader.LoadFile(this->ConfigFilePath);
    PointerList<XmlNode*>* nodes = configReader.FindNodes("sprite");

    auto it = nodes->GetContainer()->begin();
    while (it != nodes->GetContainer()->end())
    {
        XmlNode* node = (*it);

        std::string spriteName = node->GetAttribute("n").AttributeValue;
        int spriteSubTextureX = std::atoi(node->GetAttribute("x").AttributeValue);
        int spriteSubTextureY = std::atoi(node->GetAttribute("y").AttributeValue);
        int spriteSubTextureW = std::atoi(node->GetAttribute("w").AttributeValue);
        int spriteSubTextureH = std::atoi(node->GetAttribute("h").AttributeValue);

        FRectangle subRec = FRectangle(spriteSubTextureX, spriteSubTextureY, spriteSubTextureW, spriteSubTextureH);

        BaseSprite* newSprite = Graphics->CreateSpriteInstance();
        newSprite->Ident = spriteName;

        BaseTexture* newSpriteTexture = spritesheetTexture->GetSubTexture(subRec);
        newSprite->SetTexture(newSpriteTexture);
        newSpriteTexture->TextureName = spriteName;
        newSpriteTexture->TexturePath = this->SpritesheetFilePath;

        spriteList->Add(newSprite);

        it++;
    }

    nodes->Release();
    delete(nodes);

    return spriteList;
}
开发者ID:kratosaurion7,项目名称:CommsFramework,代码行数:43,代码来源:Spritesheet.cpp


注:本文中的XmlNode::GetAttribute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。