/// <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); } }
/// <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); } }
/// <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; } }
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; } }
/// <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); }