Created
January 16, 2017 20:18
-
-
Save bqrichards/04e0d5f75ccace341246b9adf3329634 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
while (opModeIsActive()) { | |
float x1 = gamepad1.right_stick_x, y1 = -gamepad1.right_stick_y; | |
float x2 = gamepad1.left_stick_x; | |
// Reset variables | |
float leftFrontPower = 0; | |
float leftBackPower = 0; | |
float rightFrontPower = 0; | |
float rightBackPower = 0; | |
// Handle regular movement | |
leftFrontPower += y1; | |
leftBackPower += y1; | |
rightFrontPower += y1; | |
rightBackPower += y1; | |
// Handle strafing movement | |
leftFrontPower += x1; | |
leftBackPower -= x1; | |
rightFrontPower -= x1; | |
rightBackPower += x1; | |
// Handle turning movement | |
leftFrontPower += x2; | |
leftBackPower += x2; | |
rightFrontPower -= x2; | |
rightBackPower -= x2; | |
// Scale movement | |
double max = Math.max(Math.abs(leftFrontPower), Math.max(Math.abs(leftBackPower), | |
Math.max(Math.abs(rightFrontPower), Math.abs(rightBackPower)))); | |
if (max > 1) { | |
leftFrontPower = (float)Range.scale(leftFrontPower, -max, max, -1, 1); | |
leftBackPower = (float)Range.scale(leftBackPower, -max, max, -1, 1); | |
rightFrontPower = (float)Range.scale(rightFrontPower, -max, max, -1, 1); | |
rightBackPower = (float)Range.scale(rightBackPower, -max, max, -1, 1); | |
} | |
// Here you set the motors' power to their respected power double. | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment