예제 #1
0
        /// <summary>
        /// 重绘可见窗口内的地图元素
        /// </summary>
        protected override void ReDraw()
        {
            Graphics canvas = Graphics.FromImage(MapViewPic);

            //计算要绘制的坐标范围
            CoordRange paintRange = new CoordRange(View.PaintWindow, CurFloorNode.FloorSize);

            //填充全景地图
            if (View.Shaked)
            {
                Graphics.FromImage(WindowFace).Clear(Color.Black);
            }

            //绘制地表
            DrawBackground(canvas, paintRange);

            //绘制地图
            DrawMap(canvas, paintRange);

            //绘制指引指针
            if (GuidePoint.Exist)
            {
                GuidePoint.Draw(canvas);
            }

            //绘制视口上的图像到窗口地图
            Graphics.FromImage(WindowFace).DrawImage(MapViewPic, FrmMain.DesWindow, View.PaintWindow, GraphicsUnit.Pixel);
        }
예제 #2
0
 /// <summary>
 /// 绘制地表
 /// </summary>
 /// <param name="canvas">画布</param>
 /// <param name="paintRange">绘制范围</param>
 private void DrawBackground(Graphics canvas, CoordRange paintRange)
 {
     for (int i = paintRange.startPos.Row; i < paintRange.endPos.Row; i++)
     {
         for (int j = paintRange.startPos.Col; j < paintRange.endPos.Col; j++)
         {
             canvas.DrawImage(MotaImage.BackImage, Common.GetPointFromCoord(j, i));
         }
     }
 }
예제 #3
0
        /// <summary>
        /// 绘制地图
        /// </summary>
        /// <param name="canvas">画布</param>
        /// <param name="paintRange">绘制范围</param>
        private void DrawMap(Graphics canvas, CoordRange paintRange)
        {
            for (int i = paintRange.startPos.Row; i < paintRange.endPos.Row; i++)
            {
                for (int j = paintRange.startPos.Col; j < paintRange.endPos.Col; j++)
                {
                    CurFloorNode.Draw(canvas, new Coord(j, i));
                }

                //在人物出现的那一行绘制人物,实现覆盖效果
                if (CurHero.Station.Row == i)
                {
                    CurHero.Draw(canvas);
                }
            }
        }
예제 #4
0
 /// <summary>
 /// 绘制地表
 /// </summary>
 /// <param name="canvas">画布</param>
 /// <param name="paintRange">绘制范围</param>
 private void DrawBackground(Graphics canvas, CoordRange paintRange)
 {
     for (int i = paintRange.startPos.Row; i < paintRange.endPos.Row; i++)
     {
         for (int j = paintRange.startPos.Col; j < paintRange.endPos.Col; j++)
         {
             canvas.DrawImage(MotaImage.BackImage, Common.GetPointFromCoord(j, i));
         }
     }
 }
예제 #5
0
        /// <summary>
        /// 绘制地图
        /// </summary>
        /// <param name="canvas">画布</param>
        /// <param name="paintRange">绘制范围</param>
        private void DrawMap(Graphics canvas, CoordRange paintRange)
        {
            for (int i = paintRange.startPos.Row; i < paintRange.endPos.Row; i++)
            {
                for (int j = paintRange.startPos.Col; j < paintRange.endPos.Col; j++)
                {
                    CurFloorNode.Draw(canvas, new Coord(j, i));
                }

                //在人物出现的那一行绘制人物,实现覆盖效果
                if (CurHero.Station.Row == i)
                {
                    CurHero.Draw(canvas);
                }
            }
        }
예제 #6
0
        /// <summary>
        /// 重绘可见窗口内的地图元素
        /// </summary>
        protected override void ReDraw()
        {
            Graphics canvas = Graphics.FromImage(MapViewPic);

            //计算要绘制的坐标范围
            CoordRange paintRange = new CoordRange(View.PaintWindow, CurFloorNode.FloorSize);
            
            //填充全景地图
            if (View.Shaked)
            {
                Graphics.FromImage(WindowFace).Clear(Color.Black);
            }
            
            //绘制地表
            DrawBackground(canvas, paintRange);

            //绘制地图
            DrawMap(canvas, paintRange);

            //绘制指引指针
            if (GuidePoint.Exist)
            {
                GuidePoint.Draw(canvas);
            }
            
            //绘制视口上的图像到窗口地图
            Graphics.FromImage(WindowFace).DrawImage(MapViewPic, FrmMain.DesWindow, View.PaintWindow, GraphicsUnit.Pixel);
        }