示例#1
0
        // private LightArea GetLightArea(ShadowmapSize size)
        //{
        //switch (size)
        //{
        //    case ShadowmapSize.Size128:
        //        return lightArea128;
        //    case ShadowmapSize.Size256:
        //        return lightArea256;
        //    case ShadowmapSize.Size512:
        //        return lightArea512;
        //    case ShadowmapSize.Size1024:
        //        return lightArea1024;
        //    default:
        //        return lightArea1024;
        //}

        // }

        // Draws all walls in the area around the light relative to it, and in black (test code, not pretty)
        private void DrawWallsRelativeToLight(ILightArea area)
        {
            RectangleF lightArea = new RectangleF(area.LightPosition - (area.LightAreaSize / 2),
                area.LightAreaSize);

            var tiles = MapManager.GetWallsIntersecting(lightArea);

            foreach (TileRef t in tiles)
            {
                Vector2 pos = area.ToRelativePosition(new Vector2(t.X, t.Y));
                t.Tile.TileDef.RenderPos(pos.X, pos.Y, MapManager.TileSize, (int)area.LightAreaSize.X);
            }
        }
示例#2
0
        // Draws all walls in the area around the light relative to it, and in black (test code, not pretty)
        private void DrawWallsRelativeToLight(ILightArea area)
        {
            Vector2f lightAreaSize = CluwneLib.PixelToTile(area.LightAreaSize) / 2;
            var lightArea = new FloatRect(area.LightPosition - lightAreaSize, CluwneLib.PixelToTile(area.LightAreaSize));

            var tiles = MapManager.GetWallsIntersecting(lightArea);

            foreach (TileRef t in tiles)
            {
                Vector2f pos = area.ToRelativePosition(CluwneLib.WorldToScreen(new Vector2f(t.X, t.Y)));
                t.Tile.TileDef.RenderPos(pos.X, pos.Y);
            }
        }