SDXFrameWork  0.07
SDXFrameWork
 全て クラス ネームスペース 関数 変数 列挙型 列挙型の値 ページ
Utility/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 }
void Update()
速度を更新.
Definition: Utility/SpeedDerived.h:63
void Multi(double 倍率)
速度を掛ける.
Definition: Utility/SpeedDerived.h:94
void Update()
速度を更新.
Definition: Utility/SpeedDerived.h:32
double Get() const
現在の速度を取得.
Definition: Utility/SpeedDerived.h:58
void Multi(double 倍率)
速度を掛ける.
Definition: Utility/SpeedDerived.h:68
void Update()
速度を更新.
Definition: Utility/SpeedDerived.h:17
変化する数値を表す抽象クラス.
Definition: Framework/Speed.h:7
void Update()
速度を更新.
Definition: Utility/SpeedDerived.h:87
void Multi(double 倍率)
速度を掛ける.
Definition: Utility/SpeedDerived.h:37