Beispiel #1
0
        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");
        }
Beispiel #2
0
        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;
     }
 }
Beispiel #5
0
        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");
        }
Beispiel #7
0
 public override void OnAfterRenderView(Viewport2d viewport)
 {
     this.SpriteBatch.End();
 }