using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace RichCreator.Utility.Dnf
|
{
|
/// <summary>
|
/// 速度计算
|
/// </summary>
|
public class SpeedProvider
|
{
|
/// <summary>
|
/// 随机移动距离
|
/// </summary>
|
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;
|
}
|
|
/// <summary>
|
/// 开始跑的阀值
|
/// </summary>
|
public double RunThresold { get; private set; }
|
|
|
|
private double stepX;
|
/// <summary>
|
/// 步行X轴速度
|
/// </summary>
|
public double StepX
|
{
|
get
|
{
|
return stepX;
|
}
|
}
|
|
private double stepY;
|
/// <summary>
|
/// 步行Y轴速度
|
/// </summary>
|
public double StepY
|
{
|
get
|
{
|
return stepY;
|
}
|
}
|
|
private double runX;
|
/// <summary>
|
/// 跑 X轴速度
|
/// </summary>
|
public double RunX
|
{
|
get
|
{
|
return runX;
|
}
|
}
|
|
/// <summary>
|
/// 跑 Y轴速度
|
/// </summary>
|
public double RunY
|
{
|
get
|
{
|
return StepY;
|
}
|
}
|
|
|
}
|
}
|