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右に動かすので注意。
22 class CProtagonistCharacter : public CCharacterBase
23 {
24 public:
25 CProtagonistCharacter( void );
26 ~CProtagonistCharacter( void );
27 void Run( CImageManager* arg_pinImageManager,
28 CAllKeysState* arg_pinAllKeysState,
29 CMapCellManager* arg_pinMapCellManager );
30
31 bool GetRequestSituationExistence();
32
33 CConquestScene::ESituationType GetRequestSituationType();
34
35 CMapCellManager::ESwitchType GetRequestSwitchType();
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
CMapCellManager::ESwitchType
ESwitchType
Definition: CMapCellManager.h:54
CMapCellManager::EMapObjectType
EMapObjectType
Definition: CMapCellManager.h:40
CImageManager
画像の管理をするクラス
Definition: CImageManager.h:34
CProtagonistCharacter::CProtagonistCharacter
CProtagonistCharacter(void)
Definition: CProtagonistCharacter.cpp:8
CCharacterBase
キャラクター基底クラス
Definition: CCharacterBase.h:20
CConquestScene::ESituationType
ESituationType
Definition: CConquestScene.h:12
CProtagonistCharacter::GetRequestSituationExistence
bool GetRequestSituationExistence()
Definition: CProtagonistCharacter.cpp:361
CProtagonistCharacter::GetRequestSwitchType
CMapCellManager::ESwitchType GetRequestSwitchType()
Definition: CProtagonistCharacter.cpp:377
CProtagonistCharacter::GetRequestSituationType
CConquestScene::ESituationType GetRequestSituationType()
Definition: CProtagonistCharacter.cpp:372
CMapCellManager
マップセルの管理をするクラス
Definition: CMapCellManager.h:31
CProtagonistCharacter::Run
void Run(CImageManager *arg_pinImageManager, CAllKeysState *arg_pinAllKeysState, CMapCellManager *arg_pinMapCellManager)
Definition: CProtagonistCharacter.cpp:28
CProtagonistCharacter::~CProtagonistCharacter
~CProtagonistCharacter(void)
Definition: CProtagonistCharacter.cpp:19
CProtagonistCharacter
Definition: CProtagonistCharacter.h:22
CAllKeysState
Definition: CAllKeysState.h:27