示例#1
0
 private void ClickLogin()
 {
     if (_usernameTextBox.GetText() != "" && _passwordTextBox.GetText() != "")
     {
         GameState           gameState  = new GameState();
         RpgClientConnection connection = new RpgClientConnection(gameState, _usernameTextBox.GetText(), _passwordTextBox.GetText(), false);
         if (connection.Connected())
         {
             StateWindow.Instance.PushState(gameState);
         }
         else
         {
             gameState.Destroy();
         }
     }
 }
示例#2
0
        public override void OnUpdateFrame(FrameEventArgs e)
        {
            if (_connection != null)
            {
                if (_connection.Connected())
                {
                    _connection.Update((float)e.Time);
                }
                else
                {
                    StateWindow.Instance.PopState();
                    this.Destroy();
                    return;
                }
            }

            base.OnUpdateFrame(e);

            if (_movementTimer > 0)
            {
                _movementTimer -= (float)e.Time;
            }

            if (_movementTimer <= 0)
            {
                KeyboardState     keyState  = Keyboard.GetState();
                bool              moving    = false;
                MovementDirection direction = MovementDirection.Down;

                if (keyState.IsKeyDown(Key.W))
                {
                    moving = true;
                    if (keyState.IsKeyDown(Key.A))
                    {
                        direction = MovementDirection.UpperLeft;
                    }
                    else if (keyState.IsKeyDown(Key.D))
                    {
                        direction = MovementDirection.UpperRight;
                    }
                    else
                    {
                        direction = MovementDirection.Up;
                    }
                }
                else if (keyState.IsKeyDown(Key.S))
                {
                    moving = true;
                    if (keyState.IsKeyDown(Key.A))
                    {
                        direction = MovementDirection.LowerLeft;
                    }
                    else if (keyState.IsKeyDown(Key.D))
                    {
                        direction = MovementDirection.LowerRight;
                    }
                    else
                    {
                        direction = MovementDirection.Down;
                    }
                }
                else if (keyState.IsKeyDown(Key.A))
                {
                    moving    = true;
                    direction = MovementDirection.Left;
                }
                else if (keyState.IsKeyDown(Key.D))
                {
                    moving    = true;
                    direction = MovementDirection.Right;
                }

                if (moving)
                {
                    ClientCommand command = new ClientCommand(ClientCommand.CommandType.MovePlayer);
                    command.SetParameter("Direction", (int)direction);
                    RpgClientConnection.Instance.AddClientCommand(command);
                    MapComponent.Instance.MovePlayer(direction);
                }

                _movementTimer = 0.1f;
            }
        }