Esempio n. 1
0
 public GameContext(
     IRenderContext renderContext,
     Map map,
     TileTypeFactory tileTypeFactory,
     Camera camera
     )
 {
     RenderContext   = renderContext;
     Map             = map;
     TileTypeFactory = tileTypeFactory;
     Camera          = camera;
 }
Esempio n. 2
0
        public void Render()
        {
            var viewportWidth  = 1000;
            var viewportHeight = 500;
            var tilesInWidth   = Math.Floor(viewportWidth / (double)TileType.TileWidth);
            var tilesInHeight  = Math.Floor(viewportHeight / (double)(TileType.TileHeight >> 1));
            var halfTileWidth  = TileType.TileWidth >> 1;
            var halfTileHeight = TileType.TileHeight >> 1;

            for (var y = 0; y < tilesInHeight; y++)
            {
                for (var x = 0; x < tilesInWidth; x++)
                {
                    var xScreen    = x * TileType.TileWidth - (y & 1) * halfTileWidth;
                    var yScreen    = y * halfTileHeight;
                    var xMap       = (int)Math.Floor(x + y * 0.5);
                    var yMap       = -(int)Math.Floor(x - y * 0.5);
                    var tileTypeId = Map.GetMapTileTypeId(xMap, yMap);
                    TileTypeFactory.GetTileType(tileTypeId).Render(RenderContext, xScreen, yScreen);
                }
            }
        }