private void initializeMovementParameters(int inchesMoving, AccelerationDirection accelerationDirection) { VelocityChangedThisMove = 0; AccelerationDirection = accelerationDirection; InchesMovingThisPhase = (int)(inchesMoving * GravityMovementBonus); }
public StepView(AccelerationDirection acceleration, SteeringWheel direction, ApplicationStep currentStep, double distance, int totalSteps, int step) { Distance = distance; this.currentStep = currentStep; this.ViewModel = new StepViewModel(acceleration, direction, currentStep, distance, totalSteps, step, this); BindingContext = ViewModel; ConfigureScreen(); ConfigureModals(); }
public void MoveCharacter(int inchesMoving, AccelerationDirection accelerationDirection = AccelerationDirection.Accelerate ) { if (IsActive) { initializeMovementParameters(inchesMoving, accelerationDirection); limitInchesMovingToAvailableMovementAllowance(); move(); updateMovementAllowanceAndNotifyMovementManueverOfCompletion(); } }
private void ResetAccelerationDirection() { mCurrentAccelerationDirection = AccelerationDirection.Hold; }
// Use this for initialization void Start() { this.CurrentSpeed = 0f; this.mCurrentAccelerationDirection = AccelerationDirection.Forward; }
/// <summary> /// Функция ускорения, увеличивает значение текущей скорости. /// </summary> public void Accelerate() { mCurrentAccelerationDirection = AccelerationDirection.Forward; }
/// <summary> /// Функция торможения, уменьшает значение текущей скорости. /// </summary> public void Brake() { mCurrentAccelerationDirection = AccelerationDirection.Backward; }
public TurnDirection TurnTowards(YawHexFacing targetYaw, PitchHexFacing targetPitch = 0, AccelerationDirection accelerationDirection = AccelerationDirection.Accelerate, int maxVelocityChangeCharacterWantsToMake = 0) { TurnDirection combineDirection = new TurnDirection(0, 0); TurnDirection yawDirectionToTurn = new TurnDirection(0, 0); TurnDirection pitchDirectionToTurn = new TurnDirection(0, 0); if (targetYaw != 0) { int completeYaw = YawHexFacing.NorthEast - YawHexFacing.North + 1; int yawDelta = yawDelta = Math.Abs(Facing.Yaw - targetYaw); int YawDeltaTurningOppositeDirection = 0; if (yawDelta > completeYaw / 2) { YawDeltaTurningOppositeDirection = Math.Abs((int)targetYaw - yawDelta); } if (YawDeltaTurningOppositeDirection == 0) { if (Facing.Yaw > targetYaw) { yawDirectionToTurn = TurnDirection.Left; } else { yawDirectionToTurn = TurnDirection.Right; } } else { if (Facing.Yaw > targetYaw) { yawDirectionToTurn = TurnDirection.Right; } else { yawDirectionToTurn = TurnDirection.Left; } ; } } if (targetPitch != 0) { int completePitch = PitchHexFacing.DiagonalDown - PitchHexFacing.Level + 1; int pitchDelta = Math.Abs(Facing.Pitch - targetPitch); int PitchDeltaTurningOppositeDirection = 0; if (pitchDelta > completePitch / 2) { PitchDeltaTurningOppositeDirection = Math.Abs((int)targetPitch - pitchDelta); } ; if (PitchDeltaTurningOppositeDirection == 0) { if (Facing.Pitch > targetPitch) { pitchDirectionToTurn = TurnDirection.Down; } else { pitchDirectionToTurn = TurnDirection.Up; } } else { if (Facing.Pitch > targetPitch) { pitchDirectionToTurn = TurnDirection.Up; } else { pitchDirectionToTurn = TurnDirection.Down; } ; } } combineDirection = yawDirectionToTurn + pitchDirectionToTurn; TurnDirection originaTurnDirection = new TurnDirection(0, 0) + combineDirection; TurnsMade = 0; while (true) { if (CanTurn == false) { MoveCharacter(TurnMode, accelerationDirection); } Turn(combineDirection); TurnsMade++; if (Facing.Yaw == targetYaw) { combineDirection = combineDirection - yawDirectionToTurn; if (Facing.Pitch == targetPitch || targetPitch == 0) { break; } } if (Facing.Pitch == targetPitch) { combineDirection = combineDirection - pitchDirectionToTurn; if (Facing.Yaw == targetYaw || targetYaw == 0) { break; } } } return(originaTurnDirection); }
public void MoveCharacter(int inchesMoving, AccelerationDirection accelerationDirection = AccelerationDirection.Accelerate, int maxVelocityChangeCharacterWantsToMake = 0) { ActiveMovement?.MoveCharacter(inchesMoving, accelerationDirection); }