using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RichCreator.Utility.Dnf { /// /// 速度计算 /// public class SpeedProvider { public static SpeedProvider Define = new SpeedProvider(1400); public SpeedProvider(Int32 speed) { double stepPixelPerSpeedX = 0;//步行 X每个速度一秒移动的像素数 double stepPixelPerSpeedY = 0;//步行 Y每个速度半秒移动的像素数 double runPixelPerSpeedX = 0;//跑 X每个速度一秒移动的像素数 if (speed <= 1109) { stepPixelPerSpeedX = 160d/1109d; stepPixelPerSpeedY = 127d/1109d; runPixelPerSpeedX = 260d/1109d; } else if (speed > 1109 && speed <= 1151) { stepPixelPerSpeedX = 166.5d/1151d; stepPixelPerSpeedY = 131d/1151d; runPixelPerSpeedX = 267.7d/1151d; } else if (speed > 1151 && speed <= 1256) { stepPixelPerSpeedX = 180d/1256d; stepPixelPerSpeedY = 142.5d/1256d; runPixelPerSpeedX = 284.5d/1256d; } else if (speed > 1256 && speed <= 1400) { stepPixelPerSpeedX = 194.5d/1400d; stepPixelPerSpeedY = 156.5d/1400d; runPixelPerSpeedX = 320d/1400d; } else { stepPixelPerSpeedX = 194.5d / 1400d; stepPixelPerSpeedY = 156.5d / 1400d; runPixelPerSpeedX = 320d/ 1400d; } stepX = (stepPixelPerSpeedX * speed) / 1000; stepY = (stepPixelPerSpeedY * speed) / 1000; runX = (runPixelPerSpeedX * speed) / 800; RunThresold = stepX * RandomUtils.KeyPressDurationMax +runX * RandomUtils.KeyPressDurationMax+50; RandomMoveMillSecond = (Int32)(300 / stepX); } /// /// 开始跑的阀值 /// public double RunThresold { get; private set; } //随机移动时间 public Int32 RandomMoveMillSecond { get; private set; } private double stepX; /// /// 步行X轴速度 /// public double StepX { get { return stepX; } } private double stepY; /// /// 步行Y轴速度 /// public double StepY { get { return stepY; } } private double runX; /// /// 跑 X轴速度 /// public double RunX { get { return runX; } } /// /// 跑 Y轴速度 /// public double RunY { get { return StepY; } } } }