MagicalKaine
 全て クラス ファイル 関数 変数 列挙型 列挙型の値
CProtagonistCharacter.h
説明を見る。
1 
2 //==============================================================
5 //==============================================================
6 
7 
8 // メンバ変数はなるべく少なく、
9 // 今のところ基底クラスに二つと、このクラスに3つ。
10 
11 #ifndef __CPROTAGONISTCHARACTER_H__
12 #define __CPROTAGONISTCHARACTER_H__
13 
14 #include "..\CommonIncludes.h"
15 #include "..\01_BaseClasses\CCharacterBase.h"
16 #include "..\02_DerivedClasses\Scenes\CConquestScene.h"
17 
18 
19 // protagonist(意味:主人公)
20 // Drawメソッドを読んで画像を表示するとき
21 // 座標を180pixel右に動かすので注意。
23 {
24 public:
25  CProtagonistCharacter( void );
26  ~CProtagonistCharacter( void );
27  void Run( CImageManager* arg_pinImageManager,
28  CAllKeysState* arg_pinAllKeysState,
29  CMapCellManager* arg_pinMapCellManager );
30 
32 
34 
36 
37 private:
38  enum EFacingDirection {
39  FORWARD,
40  BACK,
41  LEFT, // 向かって左
42  RIGHT, // 向かって右
43  };
44 
45  enum EStepDirection {
46  UP_STEP,
47  DOWN_STEP,
48  LEFT_STEP,
49  RIGHT_STEP,
50  };
51 
52  enum ECommand {
53  UP_STEP_COMMAND,
54  DOWN_STEP_COMMAND,
55  LEFT_STEP_COMMAND,
56  RIGHT_STEP_COMMAND,
57  };
58 
59  struct tag_ProtagonistState {
60  int iX;
61  int iY;
62 
63  // グリッド座標
64  int iGrid_X;
65  int iGrid_Y;
66 
67  // 予約座標
68  int iAdvance_X;
69  int iAdvance_Y;
70 
71  // 予約座標(グリッド)
72  int iAdvanceGrid_X;
73  int iAdvanceGrid_Y;
74 
75  // 現在何フレーム目か。
76  int iCurrentStepFrame;
77 
78  // 現在向いている方向
79  EFacingDirection eFacingDirection;
80 
81  // ステップ方向
82  EStepDirection eStepMoveDirection;
83 
84 
85  // ステップ移動中か否か
86  bool bStepMoveIdle;
87 
88  // 進みたい場所が進行可能エリア
89  bool bEnableStep;
90 
91  // 先行入力があるか。
92  bool bAdvanceInput;
93 
94  // ステップ方向、一度だけ先行入力を受け付ける。
95  std::queue<ECommand> qeCommand;
96  };
97 
98  //const static int WIDTH = 60;
99  //const static int HEIGHT = 60;
100 
101  // 初期位置
102  const static int INITIAL_POSITION_X = 3;
103  const static int INITIAL_POSITION_Y = 7;
104 
105  // 主人公は一度方向キーを押下されるとステップ移動する。
106  // 何フレーム掛けて移動するかを定義する必要がある。
107  const static int STEPMOVE_CYCLE_FRAME = 6;
108 
109  const static int STEPMOVE_QUANTITY[ STEPMOVE_CYCLE_FRAME ];
110 
111  // 初回起動フラグ
112  bool m_bGenerate;
113 
114  // シチュエーション変更要求フラグ
115  bool m_bRequestSituationExistence;
116 
117  // シチュエーション変更要求内容
118  CConquestScene::ESituationType m_eRequestSituationType;
119 
120  // 移動するマップセルがどの方角のものか。
121  CMapCellManager::ESwitchType m_eRequestSwitchType;
122 
123 
124  void StateInitialize( tag_ProtagonistState* arg_SprotagonistState );
125 
126  void CheckKeys( tag_ProtagonistState* arg_SprotagonistState,
127  CAllKeysState* arg_pinAllKeysState );
128 
129  void SetStepMoveDirection( tag_ProtagonistState* arg_SprotagonistState,
130  CMapCellManager* arg_pinMapCellManager );
131 
132  CMapCellManager::EMapObjectType CheckDestination(
133  tag_ProtagonistState* arg_SprotagonistState,
134  CMapCellManager* arg_pinMapCellManager );
135 
136  void Calculate( tag_ProtagonistState* arg_SprotagonistState,
137  CMapCellManager* arg_pinMapCellManager );
138 
139  void Draw( CImageManager* arg_pinImageManager,
140  tag_ProtagonistState* arg_SprotagonistState );
141 
142 };
143 
144 
145 #endif
146 
147 
ESwitchType
Definition: CMapCellManager.h:54
EMapObjectType
Definition: CMapCellManager.h:40
画像の管理をするクラス
Definition: CImageManager.h:34
CProtagonistCharacter(void)
Definition: CProtagonistCharacter.cpp:8
キャラクター基底クラス
Definition: CCharacterBase.h:20
ESituationType
Definition: CConquestScene.h:12
bool GetRequestSituationExistence()
Definition: CProtagonistCharacter.cpp:361
CMapCellManager::ESwitchType GetRequestSwitchType()
Definition: CProtagonistCharacter.cpp:377
CConquestScene::ESituationType GetRequestSituationType()
Definition: CProtagonistCharacter.cpp:372
マップセルの管理をするクラス
Definition: CMapCellManager.h:31
void Run(CImageManager *arg_pinImageManager, CAllKeysState *arg_pinAllKeysState, CMapCellManager *arg_pinMapCellManager)
Definition: CProtagonistCharacter.cpp:28
~CProtagonistCharacter(void)
Definition: CProtagonistCharacter.cpp:19
Definition: CProtagonistCharacter.h:22
Definition: CAllKeysState.h:27