SDXFrameWork 0.05 SDXFrameWork

- メインページ
- 関連ページ
- クラス

全て クラス ネームスペース 関数 変数 列挙型 列挙型の値 ページ
speedderived.h
1 #pragma once
2 #include <Utility/Speed.h>
3 namespace SDX
4 {
6 namespace Speed
7 {
10 class Liner : public ISpeed
11 {
12 public:
13 Liner(double 速度) :
14 ISpeed(速度)
15 {}
16
17 void Update(){}
18 };
19
22 class Accel : public ISpeed
23 {
24 private:
25 double 加速度;
26 public:
27 Accel( double 初速 , double 加速度):
28 ISpeed(初速),
29 加速度(加速度)
30 {}
31
32 void Update()
33 {
34 speed += 加速度;
35 }
36
37 void Multi(double 倍率)
38 {
39 speed *= 倍率;
40 加速度 *= 倍率;
41 }
42 };
43
46 class Wave : public ISpeed
47 {
48 private:
49 double 角度;
50 double 角速度;
51 public:
52 Wave( double 速度 , double 角速度 , double 初角 = 0):
53 ISpeed(速度),
54 角速度(角速度),
55 角度(初角)
56 {}
57
58 double Get() const
59 {
60 return std::abs(std::sin( 角度 ) * speed);
61 }
62
63 void Update()
64 {
65 角度 += 角速度;
66 }
67
68 void Multi(double 倍率)
69 {
70 speed *= 倍率;
71 }
72 };
73
75 class AccelLimit : public ISpeed
76 {
77 private:
78 double 加速度;
79 double 限界速度;
80 public:
81 AccelLimit(double 初速, double 加速度,double 限界速度) :
82 ISpeed(初速),
83 加速度(加速度),
84 限界速度(限界速度)
85 {}
86
87 void Update()
88 {
89 speed += 加速度;
90 if (speed > 限界速度 && 加速度 > 0) speed = 限界速度;
91 if (speed < 限界速度 && 加速度 < 0) speed = 限界速度;
92 }
93
94 void Multi(double 倍率)
95 {
96 speed *= 倍率;
97 加速度 *= 倍率;
98 限界速度 *= 倍率;
99 }
100 };
101
102 }
103 }
SDX::Speed::Wave::Update
void Update()
速度を更新.
Definition: speedderived.h:63
SDX::Speed::AccelLimit::Multi
void Multi(double 倍率)
速度を掛ける.
Definition: speedderived.h:94
SDX::Speed::Accel::Update
void Update()
速度を更新.
Definition: speedderived.h:32
SDX::Speed::AccelLimit
一定速度まで加速.
Definition: speedderived.h:75
SDX::Speed::Wave
0～速度で周期的に変化.
Definition: speedderived.h:46
SDX::Speed::Wave::Get
double Get() const
現在の速度を取得.
Definition: speedderived.h:58
SDX::Speed::Accel
加速する.
Definition: speedderived.h:22
SDX::Speed::Wave::Multi
void Multi(double 倍率)
速度を掛ける.
Definition: speedderived.h:68
SDX::Speed::Liner::Update
void Update()
速度を更新.
Definition: speedderived.h:17
SDX::ISpeed
変化する数値を表す抽象クラス.
Definition: Speed.h:7
SDX::Speed::AccelLimit::Update
void Update()
速度を更新.
Definition: speedderived.h:87
SDX::Speed::Liner
常に同じ速度.
Definition: speedderived.h:10
SDX::Speed::Accel::Multi
void Multi(double 倍率)
速度を掛ける.
Definition: speedderived.h:37