Пример #1
0
        public VehicleDriveControls GetControlFromDeltas(AxisDeltas axisDeltas, VehicleDriveControls currentState, float deltaTime)
        {
            float resultingAxis1Value = AxisValue(currentState.Axis1, axisDeltas.Delta1, Axis1RateOfChange, deltaTime);
            float resultingAxis2Value = AxisValue(currentState.Axis2, axisDeltas.Delta2, Axis2RateOfChange, deltaTime);
            float resultingAxis3Value = AxisValue(currentState.Axis3, axisDeltas.Delta3, Axis3RateOfChange, deltaTime);

            return(new VehicleDriveControls(resultingAxis1Value, resultingAxis2Value, resultingAxis3Value));
        }
Пример #2
0
        private static                       AxisDeltas[] GenerateDeltas(float axis1RateOfChange, float axis2RateOfChange, float axis3RateOfChange)
        {
            int deltaCount = 0;

            for (short axis1Delta = -1; axis1Delta < 2; ++axis1Delta)
            {
                if ((axis1Delta != 0) && (axis1RateOfChange == 0f))
                {
                    continue;
                }
                for (short axis2Delta = -1; axis2Delta < 2; ++axis2Delta)
                {
                    if ((axis2Delta != 0) && (axis2RateOfChange == 0f))
                    {
                        continue;
                    }
                    for (short axis3Delta = -1; axis3Delta < 2; ++axis3Delta)
                    {
                        if ((axis3Delta != 0) && (axis3RateOfChange == 0f))
                        {
                            continue;
                        }
                        ++deltaCount;
                    }
                }
            }
            AxisDeltas[] deltas = new AxisDeltas[deltaCount];
            deltaCount = 0;
            for (short axis1Delta = -1; axis1Delta < 2; ++axis1Delta)
            {
                if ((axis1Delta != 0) && (axis1RateOfChange == 0f))
                {
                    continue;
                }
                for (short axis2Delta = -1; axis2Delta < 2; ++axis2Delta)
                {
                    if ((axis2Delta != 0) && (axis2RateOfChange == 0f))
                    {
                        continue;
                    }
                    for (short axis3Delta = -1; axis3Delta < 2; ++axis3Delta)
                    {
                        if ((axis3Delta != 0) && (axis3RateOfChange == 0f))
                        {
                            continue;
                        }
                        deltas[deltaCount] = new AxisDeltas(axis1Delta, axis2Delta, axis3Delta);
                        ++deltaCount;
                    }
                }
            }
            return(deltas);
        }