Exemple #1
0
        public override bool Equals(object obj)
        {
            if ((obj == null) || (!(obj is XInputState)))
            {
                return(false);
            }
            XInputState source = (XInputState)obj;

            return((PacketNumber == source.PacketNumber) &&
                   (Gamepad.Equals(source.Gamepad)));
        }
Exemple #2
0
 public static extern int XInputGetState
 (
     int dwUserIndex,                      // [in] Index of the gamer associated with the device
     ref XInputState pState                // [out] Receives the current state
 );
Exemple #3
0
 public void Copy(XInputState source)
 {
     PacketNumber = source.PacketNumber;
     Gamepad.Copy(source.Gamepad);
 }
Exemple #4
0
        private void DiffUpdateTick(float dt)
        {
            XInputState controllerState = new XInputState();

            XInputGetState(0, ref controllerState);

            TwoPointIncreaseTriggerBonus = Math.Min(MaxTwoPointIncreaseTriggerBonus, TwoPointIncreaseTriggerBonus + dt * TwoPointIncreaseTriggerBonusFillSpeed);
            TwoPointDecreaseTriggerBonus = Math.Max(MaxTwoPointDecreaseTriggerBonus, TwoPointDecreaseTriggerBonus - dt * TwoPointDecreaseTriggerBonusFillSpeed);

            float speed = TwoPointNeutralSpeed;

            if (controllerState.Gamepad.bRightTrigger > 100)
            {
                if (!bRightTriggered)
                {
                    CurrentTwoPointScore        += TwoPointIncreaseTriggerBonus;
                    TwoPointIncreaseTriggerBonus = 0f;
                }

                bRightTriggered  = true;
                speed            = TwoPointIncreaseSpeed;
                DisplayDiffScore = "Good";
            }
            else
            {
                bRightTriggered = false;
            }

            if (controllerState.Gamepad.bLeftTrigger > 100)
            {
                if (!bLeftTriggered)
                {
                    CurrentTwoPointScore        += TwoPointDecreaseTriggerBonus;
                    TwoPointDecreaseTriggerBonus = 0f;
                }

                bLeftTriggered   = true;
                speed            = TwoPointDecreaseSpeed;
                DisplayDiffScore = "Bad";
            }
            else
            {
                bLeftTriggered = false;
            }

            if ((!bLeftTriggered && !bRightTriggered))
            {
                DisplayDiffScore = "Neutral";
            }
            else if (bLeftTriggered && bRightTriggered)
            {
                DisplayDiffScore = "Both";
            }

            CurrentTwoPointScore = Math.Max(0f, CurrentTwoPointScore + speed * dt);

            DiffNetData dnd = new DiffNetData(TwoPointJudgeId, CurrentTwoPointScore, SecondsSinceRoutineStart);

            if (bIsClientConnected)
            {
                if (bRoutineRecording)
                {
                    CurrentDiffScoreInterval += dt;
                    if (CurrentDiffScoreInterval > SendDiffScoreInterval)
                    {
                        CurrentDiffScoreInterval = 0f;

                        Dispatcher.BeginInvoke(DispatcherPriority.Background, new System.Threading.ThreadStart(() =>
                        {
                            SendToServerNetData("DiffResult", dnd);
                        }));

                        CurrentTwoPointBackupList.Add(dnd);

                        TwoPointFinishRoutine();
                    }
                }
            }
        }