public void SetVisibleRegion(float x, float y, float w, float h) { visibleTiles.Clear(); //normalize the parameters. float left = x / MapUtil.TILE_LENGTH; float lower = y / MapUtil.TILE_LENGTH; float right = w / MapUtil.TILE_LENGTH; float upper = h / MapUtil.TILE_LENGTH; //get all visible tiles inside the rigion ICollection <Vec2> points = loadingStrategy.GetTilesToLoad(left, lower, right, upper, size.x, size.y); foreach (var point in points) { //create the tile if not exist if (!tileSet.ContainsKey(point)) { ITile tile = factory.CreateTile(point); TileView renderer = CreateTile(point); renderer.SetTile(tile); tileSet.Add(point, renderer); visibleTiles.Add(tile); } else { visibleTiles.Add(tileSet [point].GetTile()); } } }
private void LoadCachedTiles(List <ITile> tiles) { foreach (var tile in tiles) { Vec2 point = tile.GetPoint(); TileView renderer = CreateTile(point); renderer.SetTile(tile); tileSet.Add(point, renderer); } }