Example #1
0
        void ManagerInput_FireNewInput(object sender, MyEventArgs.NewInputEventArgs e)
        {
            switch (e.Input)
            {
            case Input.Left:
                ManagerNetwork.SendInput(Keys.Left);
                break;

            case Input.Right:
                ManagerNetwork.SendInput(Keys.Right);
                break;

            case Input.Up:
                ManagerNetwork.SendInput(Keys.Up);
                break;

            case Input.Down:
                ManagerNetwork.SendInput(Keys.Down);
                break;

            case Input.None:
                break;

            case Input.Enter:
                break;

            case Input.A:
                break;

            case Input.S:
                break;

            case Input.Select:
                break;

            case Input.Start:
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Example #2
0
        private void CheckKeyState(Keys keys, KeyboardState state)
        {
            bool collided = false;

            ManagerNetwork.Player._velocity = Vector2.Zero;
            if (state.IsKeyDown(keys))
            {
                ManagerNetwork.SendInput(keys);
                switch (keys)
                {
                case Keys.Down:

                    foreach (var item in ManagerNetwork.OtherPlayers)
                    {
                        if (ManagerNetwork.Player != item)
                        {
                            if (ManagerNetwork.Player._velocity.Y < 0 && IsTouchingBottom(ManagerNetwork.Player, item) || ManagerNetwork.Player._velocity.Y > 0 && IsTouchingTop(ManagerNetwork.Player, item))
                            {
                                ManagerNetwork.Player._velocity.Y = 0f;
                                collided = true;
                                continue;
                            }
                        }
                    }
                    if (!collided)
                    {
                        ManagerNetwork.Player._velocity.Y += ManagerNetwork.Player.speed;
                    }
                    break;

                case Keys.Up:
                    if (!collided)
                    {
                        GameTime gameTime = new GameTime();
                        ManagerNetwork.Player._velocity.Y -= ManagerNetwork.Player.jumpSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds;
                        ManagerNetwork.Player._inAir       = true;
                    }
                    foreach (var item in ManagerNetwork.OtherPlayers)
                    {
                        if (ManagerNetwork.Player != item)
                        {
                            if (ManagerNetwork.Player._velocity.Y < 0 && IsTouchingBottom(ManagerNetwork.Player, item) || ManagerNetwork.Player._velocity.Y > 0 && IsTouchingTop(ManagerNetwork.Player, item))
                            {
                                ManagerNetwork.Player._velocity.Y = 0f;
                                collided = true;
                                continue;
                            }
                        }
                    }

                    break;

                case Keys.Left:
                    if (!collided)
                    {
                        ManagerNetwork.Player._velocity.X -= ManagerNetwork.Player.speed;
                    }
                    foreach (var item in ManagerNetwork.OtherPlayers)
                    {
                        if (ManagerNetwork.Player != item)
                        {
                            if (ManagerNetwork.Player._velocity.X < 0 && IsTouchingRight(ManagerNetwork.Player, item) || ManagerNetwork.Player._velocity.X > 0 && IsTouchingLeft(ManagerNetwork.Player, item))
                            {
                                ManagerNetwork.Player._velocity.X = 0f;
                                collided = true;
                                continue;
                            }
                        }
                    }
                    break;

                case Keys.Right:
                    if (!collided)
                    {
                        ManagerNetwork.Player._velocity.X += ManagerNetwork.Player.speed;
                    }
                    foreach (var item in ManagerNetwork.OtherPlayers)
                    {
                        if (ManagerNetwork.Player != item)
                        {
                            if (ManagerNetwork.Player._velocity.Y > 0 && IsTouchingLeft(ManagerNetwork.Player, item) || ManagerNetwork.Player._velocity.X < 0 && IsTouchingRight(ManagerNetwork.Player, item))
                            {
                                ManagerNetwork.Player._velocity.X = 0f;
                                collided = true;
                                continue;
                            }
                        }
                    }
                    break;
                }
                ManagerNetwork.Player._position += ManagerNetwork.Player._velocity;
            }
        }