Пример #1
0
        public void HandleButtonPress(object sender, InputStateEventArgs e)
        {
            Console.WriteLine("Button {0} Pressed, at position {1}", Enum.GetName(typeof(AllButtons), e.Button), e.MousePos.ToString());
            string explColor = "debug";

            switch (e.Button)
            {
            case AllButtons.Q:
                explColor = "ExplosionThreeRedDown";
                break;

            case AllButtons.W:
                explColor = "ExplosionThreeRedLeft";
                break;

            case AllButtons.E:
                explColor = "ExplosionThreeRedRight";
                break;

            case AllButtons.R:
                explColor = "ExplosionThreeRedUp";
                break;

            case AllButtons.A:
                explColor = "ExplosionThreeBlueDown";
                break;

            case AllButtons.S:
                explColor = "ExplosionThreeBlueLeft";
                break;

            case AllButtons.D:
                explColor = "ExplosionThreeBlueRight";
                break;

            case AllButtons.F:
                explColor = "ExplosionThreeBlueUp";
                break;

            case AllButtons.Spacebar:
                if (e.Modifier.HasFlag(ModifierKeys.Alt))
                {
                    throw new Exception();
                }
                explColor = "ExplosionThreeGreen";
                break;

            default:
                return;
            }
            if (e.Button == AllButtons.Spacebar && e.Modifier.HasFlag(ModifierKeys.Alt))
            {
                throw new Exception();
            }
            Animation[] a = new Animation[1];
            a[0] = new Animation(TexManager[explColor], 30);
            a[0].Begin();
            SpawnedAnimations.Add(new AnimatedGameObject(a, e.MousePos.ToVector2()));
        }
Пример #2
0
 public void HandleButtonHeld(object sender, InputStateEventArgs e)
 {
     //Console.WriteLine("Button {0} held at posoition {1}", Enum.GetName(typeof(AllButtons), e.Button), e.MousePos.ToString());
     if (e.Button == AllButtons.MouseButtonLeft)
         MainEntityManager.AddProjectile(DebugTower.Fire(new GameObject(TexManager.BlankTexture[0], e.MousePos.ToVector2())));
     if (e.Button == AllButtons.MouseButtonRight)
         SpawnedAnimations.Add(NewExplosion(e.MousePos.ToVector2(), "ExplosionThreeBlue"));
     //Sphere.Center = e.MousePos.ToVector3();
 }
Пример #3
0
        public InputStateEventArgs Copy()
        {
            var ret = new InputStateEventArgs();

            ret.Button     = this.Button;
            ret.Modifier   = this.Modifier;
            ret.MousePos   = this.MousePos;
            ret.MouseDelta = this.MouseDelta;
            return(ret);
        }
Пример #4
0
 public void HandleButtonHeld(object sender, InputStateEventArgs e)
 {
     //Console.WriteLine("Button {0} held at posoition {1}", Enum.GetName(typeof(AllButtons), e.Button), e.MousePos.ToString());
     if (e.Button == AllButtons.MouseButtonLeft)
     {
         MainEntityManager.AddProjectile(DebugTower.Fire(new GameObject(TexManager.BlankTexture[0], e.MousePos.ToVector2())));
     }
     if (e.Button == AllButtons.MouseButtonRight)
     {
         SpawnedAnimations.Add(NewExplosion(e.MousePos.ToVector2(), "ExplosionThreeBlue"));
     }
     //Sphere.Center = e.MousePos.ToVector3();
 }
Пример #5
0
 public void HandleButtonPress(object sender, InputStateEventArgs e)
 {
     Console.WriteLine("Button {0} Pressed, at position {1}", Enum.GetName(typeof(AllButtons), e.Button), e.MousePos.ToString());
     string explColor = "debug";
     switch (e.Button) {
         case AllButtons.Q:
             explColor = "ExplosionThreeRedDown";
             break;
         case AllButtons.W:
             explColor = "ExplosionThreeRedLeft";
             break;
         case AllButtons.E:
             explColor = "ExplosionThreeRedRight";
             break;
         case AllButtons.R:
             explColor = "ExplosionThreeRedUp";
             break;
         case AllButtons.A:
             explColor = "ExplosionThreeBlueDown";
             break;
         case AllButtons.S:
             explColor = "ExplosionThreeBlueLeft";
             break;
         case AllButtons.D:
             explColor = "ExplosionThreeBlueRight";
             break;
         case AllButtons.F:
             explColor = "ExplosionThreeBlueUp";
             break;
         case AllButtons.Spacebar:
             if (e.Modifier.HasFlag(ModifierKeys.Alt))
                 throw new Exception();
             explColor = "ExplosionThreeGreen";
             break;
         default:
             return;
     }
     if (e.Button == AllButtons.Spacebar && e.Modifier.HasFlag(ModifierKeys.Alt))
         throw new Exception();
     Animation[] a = new Animation[1];
     a[0] = new Animation(TexManager[explColor], 30);
     a[0].Begin();
     SpawnedAnimations.Add(new AnimatedGameObject(a, e.MousePos.ToVector2()));
 }
Пример #6
0
        public void HandleInput()
        {
            // Get the status of input devices for the current frame, and store the values from last frame
            KeyboardPrevious = KeyboardCurrent;
            MousePrevious    = MouseCurrent;
            GamepadPrevious  = GamepadCurrent;
            KeyboardCurrent  = Keyboard.GetState();
            MouseCurrent     = Mouse.GetState();
            GamepadCurrent   = GamePad.GetState(PlayerIndex.One);

            PreviousKeyState = CurrentKeyState;
            CurrentKeyState  = KeyboardCurrent.GetPressedKeys();
            // All keys K are currently pressed in this frame
            // TODO make this actually send modifiers and keys at the same time
            InputStateEventArgs args = new InputStateEventArgs();

            ModifierKeys ModKey = ModifierKeys.None;

            foreach (Keys K in CurrentKeyState)
            {
                ModifierKeys MK = mapKeytoModifier(K);
                if (MK != ModifierKeys.None)
                {
                    ModKey |= MK;
                }
            }
            args.Modifier = ModKey;
            args.MousePos = MouseCurrent.Position;

            #region Mouse Movement
            Point mouseDiff = (MouseCurrent.Position - MousePrevious.Position);
            if (mouseDiff != new Point())
            {
                args.MouseDelta = mouseDiff;
                if (MouseMovement != null)
                {
                    MouseMovement(this, args);
                }
            }

            #endregion

            #region Keyboard inputs
            foreach (Keys K in CurrentKeyState)
            {
                args.Button = mapKeytoButton(K);
                if (KeyboardPrevious.IsKeyUp(K))
                {
                    if (ButtonPressed != null)
                    {
                        ButtonPressed(this, args);
                    }
                }
                if (KeyboardPrevious.IsKeyDown(K))
                {
                    if (ButtonHeld != null)
                    {
                        ButtonHeld(this, args);
                    }
                }
            }

            // This gets all the ButtonReleased events
            foreach (Keys K in PreviousKeyState)
            {
                if (KeyboardCurrent.IsKeyUp(K))
                {
                    args.Button = mapKeytoButton(K);
                    if (ButtonReleased != null)
                    {
                        ButtonReleased(this, args);
                    }
                }
            }
            #endregion

            #region Mouse inputs
            args.Button = AllButtons.MouseButtonLeft;
            if (MouseCurrent.LeftButton == ButtonState.Pressed && MousePrevious.LeftButton == ButtonState.Released)
            {
                if (ButtonPressed != null)
                {
                    ButtonPressed(this, args);
                }
            }
            else if (MouseCurrent.LeftButton == ButtonState.Pressed)
            {
                if (ButtonHeld != null)
                {
                    ButtonHeld(this, args);
                }
            }
            else if (MouseCurrent.LeftButton == ButtonState.Released && MousePrevious.LeftButton == ButtonState.Pressed)
            {
                if (ButtonReleased != null)
                {
                    ButtonReleased(this, args);
                }
            }

            args.Button = AllButtons.MouseButtonMiddle;
            if (MouseCurrent.MiddleButton == ButtonState.Pressed && MousePrevious.MiddleButton == ButtonState.Released)
            {
                if (ButtonPressed != null)
                {
                    ButtonPressed(this, args);
                }
            }
            else if (MouseCurrent.MiddleButton == ButtonState.Pressed)
            {
                if (ButtonHeld != null)
                {
                    ButtonHeld(this, args);
                }
            }
            else if (MouseCurrent.MiddleButton == ButtonState.Released && MousePrevious.MiddleButton == ButtonState.Pressed)
            {
                if (ButtonReleased != null)
                {
                    ButtonReleased(this, args);
                }
            }

            args.Button = AllButtons.MouseButtonRight;
            if (MouseCurrent.RightButton == ButtonState.Pressed && MousePrevious.RightButton == ButtonState.Released)
            {
                if (ButtonPressed != null)
                {
                    ButtonPressed(this, args);
                }
            }
            else if (MouseCurrent.RightButton == ButtonState.Pressed)
            {
                if (ButtonHeld != null)
                {
                    ButtonHeld(this, args);
                }
            }
            else if (MouseCurrent.RightButton == ButtonState.Released && MousePrevious.RightButton == ButtonState.Pressed)
            {
                if (ButtonReleased != null)
                {
                    ButtonReleased(this, args);
                }
            }
            // I feel dirty
            #endregion
        }
Пример #7
0
 public void GetMousePos(object sender, InputStateEventArgs e)
 {
     MousePos = e.MousePos.ToVector2();
     MouseChanged = true;
 }
Пример #8
0
 /// <summary>
 /// Handles the mouse movement.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="InputStateEventArgs"/> instance containing the event data.</param>
 public void HandleMouseMovement(object sender, InputStateEventArgs e)
 {
     //Console.WriteLine(e.MouseDelta.ToString());
     //Sphere.Center = e.MousePos.ToVector3();
 }
Пример #9
0
 /// <summary>
 /// Handles the mouse movement.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="InputStateEventArgs"/> instance containing the event data.</param>
 public void HandleMouseMovement(object sender, InputStateEventArgs e)
 {
     //Console.WriteLine(e.MouseDelta.ToString());
     //Sphere.Center = e.MousePos.ToVector3();
 }
Пример #10
0
 public InputStateEventArgs Copy()
 {
     var ret = new InputStateEventArgs();
     ret.Button = this.Button;
     ret.Modifier = this.Modifier;
     ret.MousePos = this.MousePos;
     ret.MouseDelta = this.MouseDelta;
     return ret;
 }
Пример #11
0
        public void HandleInput()
        {
            // Get the status of input devices for the current frame, and store the values from last frame
            KeyboardPrevious = KeyboardCurrent;
            MousePrevious = MouseCurrent;
            GamepadPrevious = GamepadCurrent;
            KeyboardCurrent = Keyboard.GetState();
            MouseCurrent = Mouse.GetState();
            GamepadCurrent = GamePad.GetState(PlayerIndex.One);

            PreviousKeyState = CurrentKeyState;
            CurrentKeyState = KeyboardCurrent.GetPressedKeys();
            // All keys K are currently pressed in this frame
            // TODO make this actually send modifiers and keys at the same time
            InputStateEventArgs args = new InputStateEventArgs();

            ModifierKeys ModKey = ModifierKeys.None;
            foreach (Keys K in CurrentKeyState) {
                ModifierKeys MK = mapKeytoModifier(K);
                if (MK != ModifierKeys.None) {
                    ModKey |= MK;
                }
            }
            args.Modifier = ModKey;
            args.MousePos = MouseCurrent.Position;

            #region Mouse Movement
            Point mouseDiff = (MouseCurrent.Position - MousePrevious.Position);
            if (mouseDiff != new Point()) {
                args.MouseDelta = mouseDiff;
                if (MouseMovement != null)
                    MouseMovement(this, args);
            }

            #endregion

            #region Keyboard inputs
            foreach (Keys K in CurrentKeyState) {
                args.Button = mapKeytoButton(K);
                if (KeyboardPrevious.IsKeyUp(K)) {
                    if (ButtonPressed != null) {
                        ButtonPressed(this, args);
                    }
                }
                if (KeyboardPrevious.IsKeyDown(K)) {
                    if (ButtonHeld != null) {
                        ButtonHeld(this, args);
                    }
                }
            }

            // This gets all the ButtonReleased events
            foreach (Keys K in PreviousKeyState) {
                if (KeyboardCurrent.IsKeyUp(K)) {
                    args.Button = mapKeytoButton(K);
                    if (ButtonReleased != null) {
                        ButtonReleased(this, args);
                    }
                }
            }
            #endregion

            #region Mouse inputs
            args.Button = AllButtons.MouseButtonLeft;
            if (MouseCurrent.LeftButton == ButtonState.Pressed && MousePrevious.LeftButton == ButtonState.Released) {
                if (ButtonPressed != null)
                    ButtonPressed(this, args);
            }
            else if (MouseCurrent.LeftButton == ButtonState.Pressed) {
                if (ButtonHeld != null)
                    ButtonHeld(this, args);
            }
            else if (MouseCurrent.LeftButton == ButtonState.Released && MousePrevious.LeftButton == ButtonState.Pressed) {
                if (ButtonReleased != null)
                    ButtonReleased(this, args);
            }

            args.Button = AllButtons.MouseButtonMiddle;
            if (MouseCurrent.MiddleButton == ButtonState.Pressed && MousePrevious.MiddleButton == ButtonState.Released) {
                if (ButtonPressed != null)
                    ButtonPressed(this, args);
            }
            else if (MouseCurrent.MiddleButton == ButtonState.Pressed) {
                if (ButtonHeld != null)
                    ButtonHeld(this, args);
            }
            else if (MouseCurrent.MiddleButton == ButtonState.Released && MousePrevious.MiddleButton == ButtonState.Pressed) {
                if (ButtonReleased != null)
                    ButtonReleased(this, args);
            }

            args.Button = AllButtons.MouseButtonRight;
            if (MouseCurrent.RightButton == ButtonState.Pressed && MousePrevious.RightButton == ButtonState.Released) {
                if (ButtonPressed != null)
                    ButtonPressed(this, args);
            }
            else if (MouseCurrent.RightButton == ButtonState.Pressed) {
                if (ButtonHeld != null)
                    ButtonHeld(this, args);
            }
            else if (MouseCurrent.RightButton == ButtonState.Released && MousePrevious.RightButton == ButtonState.Pressed)
                if (ButtonReleased != null)
                    ButtonReleased(this, args);
            // I feel dirty
            #endregion
        }
Пример #12
0
 public void GetMousePos(object sender, InputStateEventArgs e)
 {
     MousePos     = e.MousePos.ToVector2();
     MouseChanged = true;
 }