GameServer
AnpanAIStateBase.h
[詳解]
1 
6 #ifndef __ANPANAISTATEBASE_H__
7 #define __ANPANAISTATEBASE_H__
8 
9 #include "Math/Vector3D.h"
10 #include "Math/Rotation.h"
11 
12 class Anpan;
13 class AnpanAI;
14 
20 {
21 
22 public:
23 
28  AnpanAIStateBase(Anpan *pInParent);
29 
33  virtual ~AnpanAIStateBase() = 0;
34 
40  void Poll(int DeltaTime);
41 
47  void SetAI(AnpanAI *pInAI) { pAI = pInAI; }
48 
53  void Stop();
54 
55 protected:
56 
62  virtual void Update(int DeltaTime) {}
63 
69  Anpan *GetParent() { return pParent; }
70 
76  AnpanAI *GetAI() { return pAI; }
77 
84  void SetMove(const Vector3D &InMoveTarget, int Time);
85 
92  void SetRotate(const Rotation &InRotateTarget, int Time);
93 
99  bool IsMoving() const { return (MoveTime > 0); }
100 
106  bool IsRotating() const { return (RotateTime > 0); }
107 
113  bool IsStopping() const { return (!IsMoving() && !IsRotating()); }
114 
115 private:
116 
117  // 親.
118  Anpan *pParent;
119 
120  // AI
121  AnpanAI *pAI;
122 
123  // 以前の座標.
124  Vector3D PrevPos;
125 
126  // 移動先.
127  Vector3D MoveTarget;
128 
129  // 移動時間.
130  int MoveTime;
131 
132  // 回転開始時間.
133  int MoveStartTime;
134 
135  // 以前の回転.
136  Rotation PrevRotate;
137 
138  // 回転先.
139  Rotation RotateTarget;
140 
141  // 回転時間.
142  int RotateTime;
143 
144  // 回転開始時間.
145  int RotateStartTime;
146 
147 
148  // 移動更新.
149  void UpdateMove(int DeltaTime);
150 
151  // 回転更新.
152  void UpdateRotate(int DeltaTime);
153 
154 };
155 
156 #endif // #ifndef __ANPANAISTATEBASE_H__
AnpanAI * GetAI()
AIを取得
Definition: AnpanAIStateBase.h:76
bool IsMoving() const
移動中?
Definition: AnpanAIStateBase.h:99
void SetMove(const Vector3D &InMoveTarget, int Time)
移動を設定
Definition: AnpanAIStateBase.cpp:49
void Stop()
停止
Definition: AnpanAIStateBase.cpp:40
Definition: Rotation.h:5
アンパンAI
Definition: AnpanAI.h:21
Anpan * GetParent()
親を取得
Definition: AnpanAIStateBase.h:69
void SetRotate(const Rotation &InRotateTarget, int Time)
回転を設定
Definition: AnpanAIStateBase.cpp:64
アンパンクラス
Definition: Anpan.h:18
Definition: Vector3D.h:8
void Poll(int DeltaTime)
毎フレームの処理
Definition: AnpanAIStateBase.cpp:32
アンパンAIステート基底クラス
Definition: AnpanAIStateBase.h:19
AnpanAIStateBase(Anpan *pInParent)
コンストラクタ
Definition: AnpanAIStateBase.cpp:13
virtual void Update(int DeltaTime)
更新処理
Definition: AnpanAIStateBase.h:62
bool IsRotating() const
回転中?
Definition: AnpanAIStateBase.h:106
void SetAI(AnpanAI *pInAI)
AIを設定
Definition: AnpanAIStateBase.h:47
virtual ~AnpanAIStateBase()=0
デストラクタ
Definition: AnpanAIStateBase.cpp:27
bool IsStopping() const
停止しているか?
Definition: AnpanAIStateBase.h:113