using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RichCreator.Utility.Dnf { /// /// 速度计算 /// public class SpeedProvider { /// /// 随机移动距离 /// public const Int32 RandomMoveDistance = 100; 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; } /// /// 开始跑的阀值 /// public double RunThresold { 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; } } } }