Stap 6: Joystick knoppen
Periodieke als code wilt uitvoeren terwijl de joystick knoppen werkt, voeg gewoon de volgende code in een van de functies van uw periodieke modus:
if(stick.GetRawButton(1)) { cout << “Button 1 has been pressed” << endl; }
Deze code zal de console met "Knop 1 is ingedrukt" berichten spam alleen wanneer de nummer 1 van de knop op de joystick waarnaar wordt verwezen door de stick-variabele wordt gedrukt. Zodra u de knop de berichten weer stopt loslaat. Terwijl dit handig in bepaalde situaties is, kunnen er andere tijden wanneer u gewoon worden aangeroepen wilt zodra wanneer de knop wordt ingedrukt. Wijzigen van uw code aan zoiets moet bereiken de resultaten die u zoekt:
if(stick.GetRawButton(1) != isButtonPressed) { if(stick.GetRawButton(1)) { cout << “Button 1 has been pressed” << endl; isButtonPressed = true; } else { cout << “Button 1 has be released” << endl; isButtonPressed = false; } }
Je moet isButtonPressed definiëren als een Boolean-waarde met een klasse-niveau bereik (precies hetzelfde als je deed met myRobot of stick) hiervoor voor werkzaamheden. In deze situatie, "knop 1 is ingedrukt" zal alleen worden output eenmaal toen het eerst wordt ingedrukt, en "Knop 1 is vrijgegeven" zal alleen worden output eens wanneer het wordt vrijgegeven.