asmrobot
2019-11-21 589ed88a5924a7494e21b95b6bbff5e46ff49ddd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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
    {
        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);
        }
 
        /// <summary>
        /// 开始跑的阀值
        /// </summary>
        public double RunThresold { get; private set; }
        
        //随机移动时间
        public Int32 RandomMoveMillSecond { 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;
            }
        }
 
 
    }
}