SDXFrameWork  0.09
SDXFrameWork
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Speed.h
1 #pragma once//©SDXFramework http://sourceforge.jp/projects/dxframework/
2 #include <Utility/ISpeed.h>
3 
4 namespace SDX
5 {
6 namespace SPEED
7 {
9 class Liner : public ISpeed
11 {
12 private:
13  double speed;
14 public:
15  Liner(double 速度) :
16  speed(速度)
17  {}
18 
19  double Get() const override
20  {
21  return speed;
22  }
23 
24  double Update() override
25  {
26  return Get();
27  }
28 };
29 
31 class Accel : public ISpeed
33 {
34 private:
35  double speed;
36  double accel;//加速度
37 public:
38  Accel( double 初速 , double 加速度):
39  speed(初速),
40  accel(加速度)
41  {}
42 
43  double Get() const override
44  {
45  return speed;
46  }
47 
48  double Update() override
49  {
50  speed += accel;
51  return Get();
52  }
53 };
54 
56 class Wave : public ISpeed
58 {
59 private:
60  double speed;
61  double 角度;
62  double 角速度;
63 public:
64  Wave( double 速度 , double 角速度 , double 初角 = 0):
65  speed(速度),
66  角速度(角速度),
67  角度(初角)
68  {}
69 
70  double Get() const override
71  {
72  return std::abs(std::sin( 角度 ) * speed);
73  }
74 
75  double Update() override
76  {
77  角度 += 角速度;
78  return Get();
79  }
80 };
81 
83 class AccelLimit : public ISpeed
84 {
85 private:
86  double speed;
87  double 加速度;
88  double 限界速度;
89 public:
90  AccelLimit(double 初速, double 加速度,double 限界速度) :
91  speed(初速),
92  加速度(加速度),
93  限界速度(限界速度)
94  {}
95 
96  double Get() const override
97  {
98  return speed;
99  }
100 
101  double Update() override
102  {
103  speed += 加速度;
104  if (speed > 限界速度 && 加速度 > 0) speed = 限界速度;
105  if (speed < 限界速度 && 加速度 < 0) speed = 限界速度;
106  return Get();
107  }
108 };
109 
110 }
111 }
double Update() override
速度を更新.
Definition: Speed.h:48
変化する数値を表す抽象クラス.
Definition: ISpeed.h:10
一定速度まで加速.
Definition: Speed.h:83
double Update() override
速度を更新.
Definition: Speed.h:24
double Update() override
速度を更新.
Definition: Speed.h:75
double Get() const override
現在の速度を取得.
Definition: Speed.h:43
double Update() override
速度を更新.
Definition: Speed.h:101
double Get() const override
現在の速度を取得.
Definition: Speed.h:19
double Get() const override
現在の速度を取得.
Definition: Speed.h:70
double Get() const override
現在の速度を取得.
Definition: Speed.h:96