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


C++ TextureAtlas::GetEntryByName方法代码示例

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


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

示例1: Load

	void Part::Load(FileNode *fileNode)
	{
		//Entity::Load(fileNode);

		fileNode->Read("id", id);
		fileNode->Read("name", name);

		sprite = NULL;
		SetGraphic(NULL);

		TextureAtlas *textureAtlas = puppet->GetTextureAtlas();
		if (textureAtlas)
		{
			TextureAtlasEntry *textureAtlasEntry = NULL;
			fileNode->Read("atlasEntry", atlasEntry);
			if (atlasEntry != "")
			{
				textureAtlasEntry = textureAtlas->GetEntryByName(atlasEntry);
				if (textureAtlasEntry)
				{
					sprite = new Sprite(textureAtlas->GetImageName());
					SetGraphic(sprite);
					sprite->textureOffset = textureAtlasEntry->GetTextureOffset();
					sprite->textureScale = textureAtlasEntry->GetTextureScale();
					printf("textureOffset: (%f, %f) textureScale: (%f, %f)\n", sprite->textureOffset.x, sprite->textureOffset.y, sprite->textureScale.x, sprite->textureScale.y);
					sprite->width = textureAtlasEntry->GetWidth();
					sprite->height = textureAtlasEntry->GetHeight();
				}
			}
		}

		if (sprite == NULL)
		{
			std::string image;
			fileNode->Read("image", image);

			sprite = new Sprite(image);
			SetGraphic(sprite);
		}
		
		if (sprite != NULL)
		{
			int width=-1, height=-1;
			fileNode->Read("width", width);
			fileNode->Read("height", height);

			if (width != -1)
			{
				sprite->width = width;
			}

			if (height != -1)
			{
				sprite->height = height;
			}

			fileNode->Read("offset", sprite->position);
		}

		int layer = 0;
		fileNode->Read("layer", layer);
		SetLayer(layer);

//		if (sprite)
//		{
//			std::string atlas;
//			fileNode->Read("atlas", atlas);
//			if (atlas != "")
//			{
//				int x, y, width, height, maxWidth=-1, maxHeight=-1;
//				std::istringstream is(atlas);
//				is >> x >> y >> width >> height >> maxWidth >> maxHeight;
//
//				if (maxWidth == -1)
//				maxWidth = width;
//				if (maxHeight == -1)
//				maxHeight = height;
//
//				sprite->textureOffset = Vector2(x/float(maxWidth), y/float(maxHeight));
//				sprite->textureScale = Vector2(width/float(maxWidth), height/float(maxHeight));
//
//				sprite->width = width;
//				sprite->height = height;
//			}
//		}
	}
开发者ID:soundofjw,项目名称:Monocle-Engine,代码行数:86,代码来源:Puppet.cpp


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