public bool ManualDrive(DriveArguments arguments) { if (isrunning) { return(false); } isrunning = true; try { //s_value = 1 (fastest) – 10 (slowest) int speedTick = RovioAPI.SetDouble(arguments.Speed, 10, 1); int?angleTick = null; if (arguments.Angle == null) { angleTick = null; } else { angleTick = (int)Math.Floor(arguments.Angle.Value / 12.0); } //angleTick 务必小于32,否则会溢出导致不断转圈。 rovio.ManualDrive((int)arguments.Action, speedTick, angleTick); } catch (Exception ex) { } finally { isrunning = false; } return(true); }
public bool ManualDrive(DriveArguments arguments) { if (isrunning) return false; isrunning = true; try { //s_value = 1 (fastest) – 10 (slowest) int speedTick = RovioAPI.SetDouble(arguments.Speed, 10, 1); int? angleTick = null; if(arguments.Angle == null) angleTick = null; else angleTick = (int)Math.Floor(arguments.Angle.Value / 12.0); //angleTick 务必小于32,否则会溢出导致不断转圈。 rovio.ManualDrive((int)arguments.Action, speedTick, angleTick); } catch (Exception ex) { } finally { isrunning = false; } return true; }