Ejemplo n.º 1
0
        /// <summary>
        /// Draw as object
        /// </summary>
        /// <param name="sprite"></param>
        /// <param name="skeletonMeshRenderer"></param>
        /// <param name="mapShiftX"></param>
        /// <param name="mapShiftY"></param>
        /// <param name="centerX"></param>
        /// <param name="centerY"></param>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="TickCount">Ticks since system startup</param>
        public virtual void Draw(SpriteBatch sprite, SkeletonMeshRenderer skeletonMeshRenderer, GameTime gameTime,
                                 int mapShiftX, int mapShiftY, int centerX, int centerY,
                                 int width, int height, float RenderObjectScaling, MapRenderResolution mapRenderResolution,
                                 int TickCount)
        {
            int shiftCenteredX = mapShiftX - centerX;
            int shiftCenteredY = mapShiftY - centerY;

            IDXObject drawFrame;

            if (notAnimated)
            {
                drawFrame = frame0;
            }
            else
            {
                drawFrame = GetCurrFrame(TickCount);
            }

            if (IsFrameWithinView(drawFrame, shiftCenteredX, shiftCenteredY, width, height))
            {
                drawFrame.DrawObject(sprite, skeletonMeshRenderer, gameTime,
                                     shiftCenteredX - _Position.X, shiftCenteredY - _Position.Y,
                                     flip);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Draw
 /// </summary>
 /// <param name="sprite"></param>
 /// <param name="skeletonMeshRenderer"></param>
 /// <param name="mapShiftX"></param>
 /// <param name="mapShiftY"></param>
 /// <param name="centerX"></param>
 /// <param name="centerY"></param>
 /// <param name="width"></param>
 /// <param name="height"></param>
 /// <param name="TickCount">Ticks since system startup</param>
 public virtual void Draw(SpriteBatch sprite, SkeletonMeshRenderer skeletonMeshRenderer, GameTime gameTime,
                          int mapShiftX, int mapShiftY, int centerX, int centerY,
                          int width, int height, float RenderObjectScaling, MapRenderResolution mapRenderResolution,
                          int TickCount)
 {
     if (notAnimated)
     {
         if (frame0.X - mapShiftX + frame0.Width > 0 && frame0.Y - mapShiftY + frame0.Height > 0 && frame0.X - mapShiftX < width && frame0.Y - mapShiftY < height)
         {
             frame0.DrawObject(sprite, skeletonMeshRenderer, gameTime, mapShiftX, mapShiftY, flip);
         }
     }
     else
     {
         GetCurrFrame(TickCount).DrawObject(sprite, skeletonMeshRenderer, gameTime, mapShiftX, mapShiftY, flip);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="mapBoard"></param>
        /// <param name="titleName"></param>
        public MapSimulator(Board mapBoard, string titleName)
        {
            IsMouseVisible = true;

            this.mapBoard = mapBoard;

            this.mapRenderResolution = UserSettings.SimulateResolution;
            InitialiseMapWidthHeight();

            //RenderHeight += System.Windows.Forms.SystemInformation.CaptionHeight; // window title height

            //double dpi = ScreenDPIUtil.GetScreenScaleFactor();

            // set Form window height & width
            //this.Width = (int)(RenderWidth * dpi);
            //this.Height = (int)(RenderHeight * dpi);

            // default center
            int leftRightVRDifference = vr.Right - vr.Left;
            int topDownVRDifference   = vr.Bottom - vr.Top;

            mapShiftX = ((leftRightVRDifference / 2) + vr.Left) - (RenderWidth / 2);
            mapShiftY = ((topDownVRDifference / 2) + vr.Top) - (RenderHeight / 2);

            //Window.IsBorderless = true;
            //Window.Position = new Point(0, 0);
            Window.Title    = titleName;
            IsFixedTimeStep = false; // dont cap fps

            _DxDeviceManager = new GraphicsDeviceManager(this)
            {
                SynchronizeWithVerticalRetrace = false, // dont cap fps
                HardwareModeSwitch             = true,
                GraphicsProfile             = GraphicsProfile.HiDef,
                IsFullScreen                = false,
                PreferMultiSampling         = true,
                SupportedOrientations       = DisplayOrientation.Default,
                PreferredBackBufferWidth    = Math.Max(RenderWidth, 1),
                PreferredBackBufferHeight   = Math.Max(RenderHeight, 1),
                PreferredBackBufferFormat   = SurfaceFormat.Color,
                PreferredDepthStencilFormat = DepthFormat.Depth24Stencil8,
            };
            _DxDeviceManager.ApplyChanges();
        }
        private void InitialiseMapWidthHeight()
        {
            RenderObjectScaling = 1.0f;
            switch (this.mapRenderResolution)
            {
            case MapRenderResolution.Res_1024x768:      // 1024x768
                RenderHeight = 768;
                RenderWidth  = 1024;
                break;

            case MapRenderResolution.Res_1280x720:     // 1280x720
                RenderHeight = 720;
                RenderWidth  = 1280;
                break;

            case MapRenderResolution.Res_1366x768:      // 1366x768
                RenderHeight = 768;
                RenderWidth  = 1366;
                break;


            case MapRenderResolution.Res_1920x1080:     // 1920x1080
                RenderHeight = 1080;
                RenderWidth  = 1920;
                break;

            case MapRenderResolution.Res_1920x1080_120PercScaled:     // 1920x1080
                RenderHeight        = 1080;
                RenderWidth         = 1920;
                RenderObjectScaling = 1.2f;
                break;

            case MapRenderResolution.Res_1920x1080_150PercScaled:     // 1920x1080
                RenderHeight              = 1080;
                RenderWidth               = 1920;
                RenderObjectScaling       = 1.5f;
                this.mapRenderResolution |= MapRenderResolution.Res_1366x768;     // 1920x1080 is just 1366x768 with 150% scale.
                break;


            case MapRenderResolution.Res_1920x1200:     // 1920x1200
                RenderHeight = 1200;
                RenderWidth  = 1920;
                break;

            case MapRenderResolution.Res_1920x1200_120PercScaled:     // 1920x1200
                RenderHeight        = 1200;
                RenderWidth         = 1920;
                RenderObjectScaling = 1.2f;
                break;

            case MapRenderResolution.Res_1920x1200_150PercScaled:     // 1920x1200
                RenderHeight        = 1200;
                RenderWidth         = 1920;
                RenderObjectScaling = 1.5f;
                break;

            case MapRenderResolution.Res_All:
            case MapRenderResolution.Res_800x600:     // 800x600
            default:
                RenderHeight = 600;
                RenderWidth  = 800;
                break;
            }
        }
Ejemplo n.º 5
0
 public override void Draw(SpriteBatch sprite, SkeletonMeshRenderer skeletonMeshRenderer, GameTime gameTime,
                           int mapShiftX, int mapShiftY, int centerX, int centerY,
                           int renderWidth, int renderHeight, float RenderObjectScaling, MapRenderResolution mapRenderResolution,
                           int TickCount)
 {
     base.Draw(sprite, skeletonMeshRenderer, gameTime,
               mapShiftX, mapShiftY, centerX, centerY,
               renderWidth, renderHeight, RenderObjectScaling, mapRenderResolution,
               TickCount);
 }
        public override void Draw(SpriteBatch sprite, SkeletonMeshRenderer skeletonMeshRenderer, GameTime gameTime,
                                  int mapShiftX, int mapShiftY, int centerX, int centerY,
                                  int renderWidth, int renderHeight, float RenderObjectScaling, MapRenderResolution mapRenderResolution,
                                  int TickCount)
        {
            if (((int)mapRenderResolution & screenMode) != screenMode)  // dont draw if the screenMode isnt for this
            {
                return;
            }

            IDXObject frame = GetCurrFrame(TickCount);
            int       X     = CalculateBackgroundPosX(frame, mapShiftX, centerX, renderWidth, RenderObjectScaling);
            int       Y     = CalculateBackgroundPosY(frame, mapShiftY, centerY, renderHeight, RenderObjectScaling);
            int       _cx   = cx == 0 ? frame.Width : cx;
            int       _cy   = cy == 0 ? frame.Height : cy;

            switch (type)
            {
            default:
            case BackgroundType.Regular:
                Draw2D(sprite, skeletonMeshRenderer, gameTime, X, Y, frame);
                break;

            case BackgroundType.HorizontalTiling:
                DrawHorizontalCopies(sprite, skeletonMeshRenderer, gameTime, renderWidth, X, Y, _cx, frame);
                break;

            case BackgroundType.VerticalTiling:
                DrawVerticalCopies(sprite, skeletonMeshRenderer, gameTime, renderHeight, X, Y, _cy, frame);
                break;

            case BackgroundType.HVTiling:
                DrawHVCopies(sprite, skeletonMeshRenderer, gameTime, renderWidth, renderHeight, X, Y, _cx, _cy, frame);
                break;

            case BackgroundType.HorizontalMoving:
                DrawHorizontalCopies(sprite, skeletonMeshRenderer, gameTime, renderWidth, X + (int)bgMoveShiftX, Y, _cx, frame);
                IncreaseShiftX(_cx, TickCount);
                break;

            case BackgroundType.VerticalMoving:
                DrawVerticalCopies(sprite, skeletonMeshRenderer, gameTime, renderHeight, X, Y + (int)bgMoveShiftY, _cy, frame);
                IncreaseShiftY(_cy, TickCount);
                break;

            case BackgroundType.HorizontalMovingHVTiling:
                DrawHVCopies(sprite, skeletonMeshRenderer, gameTime, renderWidth, renderHeight, X + (int)bgMoveShiftX, Y, _cx, _cy, frame);
                IncreaseShiftX(_cx, TickCount);
                break;

            case BackgroundType.VerticalMovingHVTiling:
                DrawHVCopies(sprite, skeletonMeshRenderer, gameTime, renderWidth, renderHeight, X, Y + (int)bgMoveShiftY, _cx, _cy, frame);
                IncreaseShiftX(_cy, TickCount);
                break;
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Draw
        /// </summary>
        /// <param name="sprite"></param>
        /// <param name="skeletonMeshRenderer"></param>
        /// <param name="gameTime"></param>
        /// <param name="mapShiftX"></param>
        /// <param name="mapShiftY"></param>
        /// <param name="centerX"></param>
        /// <param name="centerY"></param>
        /// <param name="renderWidth"></param>
        /// <param name="renderHeight"></param>
        /// <param name="RenderObjectScaling"></param>
        /// <param name="mapRenderResolution"></param>
        /// <param name="TickCount"></param>
        public override void Draw(SpriteBatch sprite, SkeletonMeshRenderer skeletonMeshRenderer, GameTime gameTime,
                                  int mapShiftX, int mapShiftY, int centerX, int centerY,
                                  int renderWidth, int renderHeight, float RenderObjectScaling, MapRenderResolution mapRenderResolution,
                                  int TickCount)
        {
            Point MousePos = Mouse.GetState().Position; // relative to the window already

            if ((mouseCursorItemStates & (int)MouseCursorItemStates.LeftPress) != (int)MouseCursorItemStates.LeftPress &&
                (mouseCursorItemStates & (int)MouseCursorItemStates.RightPress) != (int)MouseCursorItemStates.RightPress)      // default
            {
                base.Draw(sprite, skeletonMeshRenderer, gameTime,
                          -MousePos.X, -MousePos.Y, centerX, centerY,
                          renderWidth, renderHeight, RenderObjectScaling, mapRenderResolution,
                          TickCount);
            }
            else // if left or right press is active, draw pressed state
            {
                cursorItemPressedState.Draw(sprite, skeletonMeshRenderer, gameTime,
                                            -MousePos.X, -MousePos.Y, centerX, centerY,
                                            renderWidth, renderHeight, RenderObjectScaling, mapRenderResolution,
                                            TickCount);
            }
        }
        public override void Draw(SpriteBatch sprite, SkeletonMeshRenderer skeletonMeshRenderer, GameTime gameTime,
                                  int mapShiftX, int mapShiftY, int centerX, int centerY,
                                  int RenderWidth, int RenderHeight, float RenderObjectScaling, MapRenderResolution mapRenderResolution,
                                  int TickCount)
        {
            // control minimap render UI position via
            //  Position.X, Position.Y

            // Draw the main drame
            base.Draw(sprite, skeletonMeshRenderer, gameTime,
                      0, 0, centerX, centerY,
                      RenderWidth, RenderHeight, RenderObjectScaling, mapRenderResolution,
                      TickCount);

            int minimapPosX = (mapShiftX + (RenderWidth / 2)) / 16;
            int minimapPosY = (mapShiftY + (RenderHeight / 2)) / 16;

            item_pixelDot.Draw(sprite, skeletonMeshRenderer, gameTime,
                               -Position.X, -Position.Y, minimapPosX, minimapPosY,
                               RenderWidth, RenderHeight, RenderObjectScaling, mapRenderResolution,
                               TickCount);
        }