using RoboidControl; class BB2B : Thing { readonly DifferentialDrive drive; readonly TouchSensor touchLeft; readonly TouchSensor touchRight; public BB2B() : base(128) { // thingType = 128 // The robot's propulsion is a differential drive drive = new(); // Is has a touch sensor at the front left of the roboid touchLeft = new(drive); // and other one on the right touchRight = new(drive); } public override void Update(ulong currentTimeMs, bool recurse = true) { // The left wheel turns forward when nothing is touched on the right side // and turn backward when the roboid hits something on the right float leftWheelSpeed = touchRight.touchedSomething ? -600.0f : 600.0f; // The right wheel does the same, but instead is controlled by // touches on the left side float rightWheelSpeed = touchLeft.touchedSomething ? -600.0f : 600.0f; // When both sides are touching something, both wheels will turn backward // and the roboid will move backwards drive.SetWheelVelocity(leftWheelSpeed, rightWheelSpeed); base.Update(currentTimeMs, recurse); } }