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


C++ XMLParser::GetTagName方法代码示例

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


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

示例1: ParseLevelConfig

void Level::ParseLevelConfig(std::wstring fileName)
{
	XMLParser* parser = new XMLParser();
	parser->LoadFile(fileName);

	while (parser->Parse(L"Level"))
	{
		// Skip the tag if its not an opening tag.
		if (parser->GetTagType() != XMLParser::OPENING)
		{
			continue;
		}

		// Read the tag if its an opening tag
		std::wstring tagName = parser->GetTagName();
		std::wstring tagContent = parser->GetTagContent();

		if (tagName.compare(L"ID") == 0)
		{
			m_LevelName = tagContent;
		}
		else if (tagName.compare(L"StandardConfig") == 0)
		{
			m_StandardConfigPath = tagContent;
		}
		else if (tagName.compare(L"SVG") == 0)
		{
			m_SVGPath = tagContent;
			m_ActorLayoutPtr->AddSVGShape(String(m_SVGPath.c_str()));
		}
		else if (tagName.compare(L"Visuals") == 0)
		{
			m_VisualsPath = tagContent;
			m_ImgVisualsPtr = new Bitmap(String(m_VisualsPath.c_str()));

			// Add a polygonal shape around the level
			std::vector<DOUBLE2> levelBoundaries(4);
			levelBoundaries[0] = DOUBLE2(0, 0);
			levelBoundaries[1] = DOUBLE2(0, m_ImgVisualsPtr->GetHeight());
			levelBoundaries[2] = DOUBLE2(m_ImgVisualsPtr->GetWidth(), m_ImgVisualsPtr->GetHeight());
			levelBoundaries[3] = DOUBLE2(m_ImgVisualsPtr->GetWidth(), 0);

			m_ActorLayoutPtr->AddChainShape(levelBoundaries, true);
		}
		else if (tagName.compare(L"Shadows") == 0)
		{
			m_ShadowsPath = tagContent;
			m_ImgShadowsPtr = new Bitmap(String(m_ShadowsPath.c_str()));
		}
		else if (tagName.compare(L"Navigation") == 0)
		{
			// Loads an image that is converted and used a navigation grid
			m_NavigationPath = tagContent;
			Bitmap* navigationImg = new Bitmap(String(m_NavigationPath.c_str()));
			// Create a navigation grid for the pathfinding algorithm.
			std::vector<std::vector<COLOR>> rawPixelData = navigationImg->GetRawPixelData();
			m_NavigationGrid = std::vector<std::vector<bool>>(navigationImg->GetHeight(), std::vector<bool>(navigationImg->GetWidth()));
			for (int i = 0; i < navigationImg->GetHeight(); ++i)
			{
				for (int j = 0; j < navigationImg->GetWidth(); ++j)
				{
					COLOR color = rawPixelData[i][j];
					int avarageValue = (color.red + color.green + color.blue) / 3;
					
					if (avarageValue < 128)
					{
						m_NavigationGrid[i][j] = false;
					}
					else
					{
						m_NavigationGrid[i][j] = true;
					}
				}

				rawPixelData[i].clear();
			}
			rawPixelData.clear();

			delete navigationImg;
			
		}
		else if (tagName.compare(L"Objective") == 0)
		{
			m_ObjectivePath = tagContent;
			m_ImgIntroPtr = new Bitmap(String(m_ObjectivePath.c_str()));
		}
		else if (tagName.compare(L"AudioMainMusic") == 0)
		{
			m_AudioMainMusic = tagContent;
		}
		else if (tagName.compare(L"AudioCompletedMusic") == 0)
		{
			m_AudioCompletedMusic = tagContent;
		}
		else if (tagName.compare(L"AudioCompletedEffect") == 0)
		{
			m_AudioCompletedEffect = tagContent;
		}
		else if (tagName.compare(L"EndZone") == 0)
		{
//.........这里部分代码省略.........
开发者ID:juniordiscart,项目名称:StreetJustice911,代码行数:101,代码来源:Level.cpp


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