本文整理汇总了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;
}
示例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;
}