- 用到state machine的概念,需要去記前一個按鈕的狀態是甚麼
public class TeleOpMode extends TeleOp_Base{
boolean buttonA_state = false;
@Override
public void runOpMode() throws InterruptedException {
init_hardware();
waitForStart();
while(opModeIsActive()) {
if(gamepad1.a) {
buttonA_state = true;
}
else if(buttonA_state && !gamepad1.a) {
//馬達轉90度
buttonA_state = false;
}
}
}
}
- 若你想把它寫成function(ButtonAPressedOnce( ))
public class TeleOpMode extends TeleOp_Base{
boolean buttonA_state = false;
@Override
public void runOpMode() throws InterruptedException {
init_hardware();
waitForStart();
while(opModeIsActive()) {
if(ButtonAPressedOnce()) {
//馬達轉90度
}
}
}
public boolean ButtonAPressedOnce() {
if(gamepad1.a) {
buttonA_state = true;
}
else if(buttonA_state && !gamepad1.a) {
buttonA_state = false;
return true;
}
return false;
}
}