Пример #1
0
TerrainTile Level::convert_byte(int y, int x, unsigned char byte){
	float sheet_width = 914.0f;
	float sheet_height = 936.0f;
	TerrainTile tile;
	//tile.exists = false;
	if (byte == (unsigned char)1){
		//"stoneCenter.png" x="144" y="576" width="70" height="70"
		Sheetposition position = Sheetposition(144.0f, 576.0f, 70.0f, 70.0f, tilesize, sheet_width, sheet_height);
		tile = TerrainTile(x*tilesize + tilesize/2, y*tilesize +tilesize/2, tile_texture, position, program);
		tile.set_behaviors(true, true, true, true);
		tile.set_exists(true);
		tile.set_hitbox(tilesize, tilesize);

	}
	else if (byte == (unsigned char)2){
		//"stoneMid.png" x="72" y="432" width="70" height="70"
		Sheetposition position = Sheetposition(72.0f, 432.0f, 70.0f, 70.0f, tilesize, sheet_width, sheet_height);
		tile = TerrainTile(x * tilesize + tilesize /2, y*tilesize + tilesize /2, tile_texture, position, program);
		tile.set_behaviors(true, true , true, true);
		tile.set_exists(true);
		tile.set_hitbox(tilesize, tilesize);

	}
	return tile;
}
Пример #2
0
void TerrainGenerator::interpretMap(float *heightMap[]){
	int TileSize = 4;
	int *interpretedData[129];
	m_curMap.resize(129, std::vector<TerrainTile>(129, TerrainTile(NULL, 0, 0, Grass, 0, 0)));
	for (int i = 0; i < 129; i++){
		interpretedData[i] = new int[129];
	}
	std::ofstream mapFile;
	mapFile.open("terrainMap.txt");
	for (int i = 0; i < 129; i++){
		for (int j = 0; j < 129; j++){
			if (heightMap[i][j] >= 70.0f){
				interpretedData[i][j] = 3;
				m_curMap[i][j] = TerrainTile(NULL, i * TileSize, j * TileSize, Grass, TileSize, TileSize, true);
			}
			else if (heightMap[i][j] <= 60.0f){
				interpretedData[i][j] = 1;
				m_curMap[i][j] = TerrainTile(NULL, i * TileSize, j * TileSize, Water, TileSize, TileSize, true);
			}
			else{
				interpretedData[i][j] = 2;
				m_curMap[i][j] = TerrainTile(NULL, i * TileSize, j * TileSize, Dirt, TileSize, TileSize, true);
			}
			mapFile << interpretedData[i][j];
		}
		mapFile << std::endl;
	}
	mapFile.close();

}
Пример #3
0
void DungeonGenerator::InitMap(Display &MainDisplay)
{
	
	std::vector<std::vector<TerrainTile>> Layer;
	Layer.resize(cm_DungeonWidth, std::vector<TerrainTile>(cm_DungeonHeight, TerrainTile(NULL,0,0,Floor,0,0)));

	for (int x = 0; x < m_Dungeon.size(); x++)
	{
		for (int y = 0; y < m_Dungeon[0].size(); y++)
		{
			TILE CurTileType = Get_Tile(Vec2i(x, y));
			
			if (CurTileType == Wall)
			{
				Layer[x][y] = TerrainTile(NULL, x * cm_TileSize, y * cm_TileSize, Wall, cm_TileSize, cm_TileSize, true);
			}
			else if (CurTileType == Floor)
			{
				//Layer[x][y] = TerrainTile(NULL, x * cm_TileSize, y * cm_TileSize, Floor, cm_TileSize, cm_TileSize, false);
				Layer[x][y] = TerrainTile(m_GroundImage, x * cm_TileSize, y * cm_TileSize, Floor, cm_TileSize, cm_TileSize, false);
			}
			else if (CurTileType == Door)
			{
				Layer[x][y] = TerrainTile(NULL, x * cm_TileSize, y * cm_TileSize, Door, cm_TileSize, cm_TileSize, false);
			}
		}
	}
	TerrainLayer *Temp = new TerrainLayer(Layer);
	Temp->CreateBitmap(MainDisplay);
	m_Map = new TerrainMap(Temp);
	
	
}