SDXFrameWork 0.09 SDXFrameWork

- Main Page
- Related Pages
- Classes

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 }
SDX::SPEED::Accel::Update
double Update() override
速度を更新.
Definition: Speed.h:48
SDX::SPEED::ISpeed
変化する数値を表す抽象クラス.
Definition: ISpeed.h:10
SDX::SPEED::AccelLimit
一定速度まで加速.
Definition: Speed.h:83
SDX::SPEED::Liner::Update
double Update() override
速度を更新.
Definition: Speed.h:24
SDX::SPEED::Wave::Update
double Update() override
速度を更新.
Definition: Speed.h:75
SDX::SPEED::Accel::Get
double Get() const override
現在の速度を取得.
Definition: Speed.h:43
SDX::SPEED::AccelLimit::Update
double Update() override
速度を更新.
Definition: Speed.h:101
SDX::SPEED::Liner::Get
double Get() const override
現在の速度を取得.
Definition: Speed.h:19
SDX::SPEED::Wave::Get
double Get() const override
現在の速度を取得.
Definition: Speed.h:70
SDX::SPEED::AccelLimit::Get
double Get() const override
現在の速度を取得.
Definition: Speed.h:96