Мне нужно запрограммировать робота на 50% скорость, когда кнопка «a» на игровой контроллер нажат и отпустит, а затем диск на 100%, когда «a» будет нажат и снова выпущен, как кнопка с фиксацией. У меня есть следующий код, который делает робот-диск 50%, когда «а» удерживается постоянно, а при 100% при выпуске «а» он отлично работает.Я пытаюсь запрограммировать «запертую кнопку» для робота, однако, когда я просматриваю код, робот не отвечает
telemetry.addData("Status", "Running: " + runtime.toString());
if(gamepad1.a)
{
telemetry.addData("Status", "A pressed");
leftMotor.setPower(-gamepad1.left_stick_y*0.5);
rightMotor.setPower(-gamepad1.right_stick_y*0.5);
telemetry.addData("Status", "Running Slow");
}
else {
leftMotor.setPower(-gamepad1.left_stick_y);
rightMotor.setPower(-gamepad1.right_stick_y);
telemetry.addData("Status", "Running regular");
}
}
И это код, который у меня есть для запертой кнопки, при запуске он не работает. Я думаю, что это просто вопрос фиксации операторов if и else, но я не могу точно определить проблему.
telemetry.addData("Status", "Running: " + runtime.toString());
if(gamepad1.a)
{
telemetry.addData("Status", "A pressed");
//if A was pressed
if(aPressed == false)
{
aPressed = true;
if(goingSlow)
{
leftMotor.setPower(-gamepad1.left_stick_y);
rightMotor.setPower(-gamepad1.right_stick_y);
telemetry.addData("Status", "Running Regular");
goingSlow = false;
}
else {
leftMotor.setPower(-gamepad1.left_stick_y*0.5);
rightMotor.setPower(-gamepad1.right_stick_y*0.5);
telemetry.addData("Status", "Running Slow");
goingSlow = true;
}
}
}
else
{
aPressed = false;
}