public KbScene( Ecosystem ecosystem, Keycosystem keycosystem, DirectiveRenderer renderer, FpsCounter fpsCounter) { this.Ecosystem = ecosystem; this.Keycosystem = keycosystem; this.Renderer = renderer; this.FpsCounter = fpsCounter; this.Camera = renderer.GetViewport("default"); }
public override bool OnBeforeRenderView(Viewport2d viewport) { var translation = GetCameraTranslation(viewport); this.SpriteBatch.Begin( samplerState: SamplerState.PointWrap, // disable anti-aliasing transformMatrix: translation); if (this.ClearFrame) { // todo: this probably doesn't work with multiple viewports on one screen this.SpriteBatch.GraphicsDevice.Clear(this.BackgroundColor); } return(true); }
public GameSelectScene( Ecosystem ecosystem, Keycosystem keycosystem, Director director, DebugLogger debugLogger, DirectiveRenderer renderer, FpsCounter fpsCounter, Window window) { this.Ecosystem = ecosystem; this.Keycosystem = keycosystem; this.Director = director; this.DebugLogger = debugLogger; this.Renderer = renderer; this.FpsCounter = fpsCounter; this.Window = window; this.Camera = renderer.GetViewport("default"); }
public static void PanCamera(Viewport2d camera, DirectionalPadControl dpad) { if ((dpad.Direction & Direction2d.Up) > 0) { camera.Space.Y -= 8; } if ((dpad.Direction & Direction2d.Right) > 0) { camera.Space.X += 8; } if ((dpad.Direction & Direction2d.Down) > 0) { camera.Space.Y += 8; } if ((dpad.Direction & Direction2d.Left) > 0) { camera.Space.X -= 8; } }
private static Matrix GetCameraTranslation(Viewport2d viewport) { if (viewport.Focus != null) { viewport.Space.MoveTo(viewport.Focus()); } var zoomDiffX = (viewport.Space.Width * viewport.Zoom) - viewport.Space.Width; var zoomDiffY = (viewport.Space.Height * viewport.Zoom) - viewport.Space.Height; // This formula adapted from: https://roguesharp.wordpress.com/2014/07/13/tutorial-5-creating-a-2d-camera-with-pan-and-zoom-in-monogame/ var translation = Matrix.CreateTranslation(-viewport.Space.TopLeft.X, -viewport.Space.TopLeft.Y, FZero) * Matrix.CreateTranslation(viewport.Pan.X, viewport.Pan.Y, FZero) * //Matrix.CreateRotationZ(cameraTranslation.Rotation) * Matrix.CreateScale(viewport.Zoom, viewport.Zoom, FOne) * Matrix.CreateTranslation(-zoomDiffX / 2, -zoomDiffY / 2, FZero); // Keep the camera centered after zoom return(translation); }
public TestMapScene( Ecosystem ecosystem, Keycosystem keycosystem, DebugLogger debugLogger, Director director, DirectiveRenderer renderer, FpsCounter fpsCounter, MessageRouter messageRouter, GameTimer timer) { this.Ecosystem = ecosystem; this.Keycosystem = keycosystem; this.DebugLogger = debugLogger; this.Renderer = renderer; this.FpsCounter = fpsCounter; this.MessageRouter = messageRouter; this.Timer = timer; this.PlayerPosition = messageRouter.GetPubKey <Position2d>("player-position"); this.SubKey = messageRouter.GetSubKey(); this.Camera = renderer.GetViewport("default"); }
public override void OnAfterRenderView(Viewport2d viewport) { this.SpriteBatch.End(); }