Exemple #1
0
        protected FormRow(string labelText, ControlOrder controlOrder = ControlOrder.LabelFirst) : base()
        {
            this.AutoSize = true;

            this.Label = new Label
            {
                Text      = labelText,
                Font      = mainFont,
                Anchor    = AnchorStyles.Left,
                TextAlign = ContentAlignment.MiddleLeft,
                AutoSize  = true,
            };

            this.Field          = this.CreateField();
            this.Field.Font     = mainFont;
            this.Field.Anchor   = AnchorStyles.Right;
            this.Field.AutoSize = true;

            var controls = new Control[] { this.Label, this.Field };

            foreach (var control in (controlOrder == ControlOrder.LabelFirst ? controls : controls.Reverse().ToArray()))
            {
                this.Controls.Add(control);
            }
        }
Exemple #2
0
 protected virtual void RunOrder(string InnerText)
 {
     if (InnerText == "0")
     {
         mode = ControlOrder.Row;
     }
     else if (InnerText == "1")
     {
         mode = ControlOrder.Column;
     }
     else
     {
         mode = mode == ControlOrder.Row ? ControlOrder.Column : ControlOrder.Row;
     }
 }
    public void ControlAndSendToServer()
    {
        if (PlayerList.Count <= 0)
        {
            return;
        }
        var ctrl = Controller.GetControl();

        if (ctrl != ControlOrder.None)
        {
            if (ctrl != ControlOrder.Idle)
            {
                sendIdle = true;
            }
            if (ctrl != ControlOrder.Kick)
            {
                PlayerList[myName].Action(ctrl, PlayerList[myName].transform.position.x, PlayerList[myName].transform.position.y, false, false, Parameters.MoveSpeed);
            }
            if (ctrl == ControlOrder.Kick || sendIdle ||
                myPos.x != PlayerList[myName].transform.position.x)
            {
                if (sendIdle && ctrl == ControlOrder.Idle)
                {
                    sendIdle = false;
                }
                var actMessage = new PlayerActionMessage();
                var act        = new PlayerAction();
                act.Name        = myName;
                act.Control     = ctrl;
                act.X           = PlayerList[myName].transform.position.x;
                act.Y           = PlayerList[myName].transform.position.y;
                act.Turn        = PlayerList[myName].TurnFlag;
                act.Vx          = Parameters.Vx * (act.Turn ? -1 : 1);
                actMessage.Data = act;
                if (Time.time > sendTime || (ctrl != ControlOrder.moveLeft && ctrl != ControlOrder.moveRight) || nowOrder != ctrl)
                {
                    Send(Message.Act, actMessage);
                    sendTime = Time.time + Time.deltaTime * Parameters.SendDistance;
                    perTime  = (sendTime - Time.time) / Parameters.SendDistance;
                }
                myPos = PlayerList[myName].transform.position;
            }
            nowOrder = ctrl;
        }
    }
    public void Action(ControlOrder control, float x, float y, bool turn, bool fromServer, float vx)
    {
        switch (control)
        {
        case ControlOrder.moveLeft:
            //Debug.Log("move left");
            if (myGameObject.transform.eulerAngles != new Vector3(0, -180, 0))
            {
                Turn("left");
            }
            if (fromServer)
            {
                Move(x, y, vx);
            }
            else
            {
                Move(-Parameters.MoveSpeed + myGameObject.transform.position.x, myGameObject.transform.position.y);
            }
            break;

        case ControlOrder.moveRight:
            //Debug.Log("move right");
            if (myGameObject.transform.eulerAngles != new Vector3(0, 0, 0))
            {
                Turn("right");
            }
            if (fromServer)
            {
                Move(x, y, vx);
            }
            else
            {
                Move(Parameters.MoveSpeed + myGameObject.transform.position.x, myGameObject.transform.position.y);
            }
            break;

        case ControlOrder.Jump:
            if (!fromServer && (Parameters.CanJump > Time.time || Animator.GetBool("Jump")))
            {
                break;
            }
            else if (Animator.GetBool("Jump"))
            {
                break;
            }
            Jump();
            break;

        case ControlOrder.Kick:
            if (fromServer && CRisRunning)
            {
                MainGame.StopCoroutine(updatePositionCoroutine);
            }
            Kick();
            break;

        case ControlOrder.Idle:
            //if(fromServer) Debug.Log("Idle turn is " + turn);
            if (fromServer && CRisRunning)
            {
                MainGame.StopCoroutine(updatePositionCoroutine);
            }
            if (fromServer)
            {
                Idle(x, y, turn);
            }
            else
            {
                Idle(x, y, TurnFlag);
            }
            break;

        case ControlOrder.Skill:
            Skill();
            break;
        }
    }