public GameScreen(Game game, Camera2D camera) { Game = game; Camera = camera; RandomNum = new Random(); spriteBatch = new SpriteBatch(game.GraphicsDevice); SortEntitiesForDraw = true; }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { // TODO: Add your initialization logic here Camera = new Camera2D( GraphicsDevice.Viewport, new Vector2(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight)); InitialiseGameScreens(); base.Initialize(); Input.Initialize(GraphicsDevice); // Set up button mappings. Note that TouchTwinStick translates the left touch pad to Pad0, which is the same // input device as the first connected Xbox controller. Input.ClearMappings(); Input.ButtonMappings.Add((int)Controls.Up, new ButtonGeneric[] { ButtonGeneric.Pad0LeftThumbstickUp, ButtonGeneric.Up, ButtonGeneric.W }); Input.ButtonMappings.Add((int)Controls.Down, new ButtonGeneric[] { ButtonGeneric.Pad0LeftThumbstickDown, ButtonGeneric.Down, ButtonGeneric.S }); Input.ButtonMappings.Add((int)Controls.Left, new ButtonGeneric[] { ButtonGeneric.Pad0LeftThumbstickLeft, ButtonGeneric.Left, ButtonGeneric.A }); Input.ButtonMappings.Add((int)Controls.Right, new ButtonGeneric[] { ButtonGeneric.Pad0LeftThumbstickRight, ButtonGeneric.Right, ButtonGeneric.D }); //Input.ButtonMappings.Add((int)Controls.Suck, new ButtonGeneric[] { ButtonGeneric.TouchRightSide, ButtonGeneric.Space }); //unfortunately you can't press up+left+space at the same time! so we have to use a different key... Input.ButtonMappings.Add((int)Controls.Suck, new ButtonGeneric[] { ButtonGeneric.TouchRightSide, ButtonGeneric.LeftControl, ButtonGeneric.RightControl}); Input.ButtonMappings.Add((int)Controls.Select, new ButtonGeneric[] { ButtonGeneric.TapAnywhere, ButtonGeneric.Space }); // Default value for this is not sensitive enough for the Eggtastic gameplay. // By default it's tuned to menu item selection and requires much bigger deviation Input.StickDirectionThreshold = 0.2f; }
//public Matrix GetViewMatrixInvertY() //{ // return GetViewMatrixInvertY(Vector2.One); //} //public Matrix GetViewMatrixInvertY(Vector2 parallax) //{ // return Matrix.CreateTranslation(new Vector3(new Vector2(-Position.X, Position.Y) / (parallax * Zoom * DefaultZoom), 0.0f)) * // Matrix.CreateTranslation(new Vector3(new Vector2(-Origin.X, Origin.Y), 0.0f)) * // Matrix.CreateRotationZ(Rotation) * // Matrix.CreateScale(Zoom * DefaultZoom, Zoom * DefaultZoom, 1.0f) * // Matrix.CreateTranslation(new Vector3(Origin.X, -Origin.Y, 0.0f)); //} public Camera2D Clone() { Camera2D c = new Camera2D(); c.Position = Position; c.Origin = Origin; c.Zoom = Zoom; c.DefaultZoom = DefaultZoom; c.Rotation = Rotation; c.ExtraOffset = ExtraOffset; return c; }