Esempio n. 1
0
	void KOrthogonalMap::initeNode(KOrthoNode &Node, U32 TileID, const KOrthoLayer &Layer) {
		Node.tileID = TileID;
		Node.atlasID = Layer.atlas.id;
		Node.fliph = Layer.atlas.getFlipH();
		Node.flipv = Layer.atlas.getFlipV();

		KRectF32 dim = getTileDimension(TileID);
		Node.verts[0].pos.x = dim.left;
		Node.verts[0].pos.y = dim.bottom;
		Node.verts[1].pos.x = dim.left;
		Node.verts[1].pos.y = dim.top;
		Node.verts[2].pos.x = dim.right;
		Node.verts[2].pos.y = dim.bottom;
		Node.verts[3].pos.x = dim.right;
		Node.verts[3].pos.y = dim.top;

		Node.verts[0].r = Node.verts[1].r = Node.verts[2].r = Node.verts[3].r = Layer.blend.getR();
		Node.verts[0].g = Node.verts[1].g = Node.verts[2].g = Node.verts[3].g = Layer.blend.getG();
		Node.verts[0].b = Node.verts[1].b = Node.verts[2].b = Node.verts[3].b = Layer.blend.getB();
		Node.verts[0].a = Node.verts[1].a = Node.verts[2].a = Node.verts[3].a = Layer.blend.getA();

		Node.verts[0].tindex = Node.verts[1].tindex = Node.verts[2].tindex = Node.verts[3].tindex = Layer.textureID;
		Node.verts[1].uv = KVector2F32(Layer.atlas.blu, Layer.atlas.blv);
		Node.verts[0].uv = KVector2F32(Layer.atlas.blu, Layer.atlas.trv);
		Node.verts[3].uv = KVector2F32(Layer.atlas.tru, Layer.atlas.blv);
		Node.verts[2].uv = KVector2F32(Layer.atlas.tru, Layer.atlas.trv);
	}
Esempio n. 2
0
// load xml-level -----------------------------------------------
void TiledLoader::loadLevel(const char * fileName)
{
	if (!m_Doc.LoadFile(fileName))
	{
		// if file is found, ... proceed
		printf("load file=[%s] succeeded\n", fileName);
		// get tile-dimension for rendering
		getTileDimension();
		//load all textures into TextureManager
		loadMapTextures();
	}
	else
	{
		printf("load file=[%s] failed\n", fileName);
	}
}
Esempio n. 3
0
	void KOrthogonalMap::getTileLayers(U32 TileID, std::vector<KOrthoLayer> &Output) {
		Output.clear();
		// check range
		if (TileID >= _krootList.size()) {
			KD_PRINT("tile id is out of range or tile map is not created yet");
			return;
		}
		Output.reserve(_krootList[TileID].layerSize);

		U32 tindex = _krootList[TileID].firstNode;
		auto dim = getTileDimension(TileID);
		for (SIZE ncounter = 0; ncounter < _krootList[TileID].layerSize; ++ncounter) {
			Output.push_back(KOrthoLayer());
			initeLayer(_knodeList[tindex], Output.back());
			tindex = _knodeList[tindex].nextNode;
		}
	}