質問編集履歴

1

state.hとPlayer.hを追加しました。

2018/06/01 12:23

投稿

nozomin_jp
nozomin_jp

スコア13

test CHANGED
File without changes
test CHANGED
@@ -72,9 +72,113 @@
72
72
 
73
73
  ```
74
74
 
75
+ ### 該当のソースコード(State.h)
76
+
77
+ ```C++
78
+
79
+ #pragma once
75
80
 
76
81
 
77
82
 
83
+ class Message;
84
+
85
+
86
+
87
+ template<class entityType> class State {
88
+
89
+ public:
90
+
91
+
92
+
93
+ virtual ~State(){}
94
+
95
+
96
+
97
+ // ステート開始処理
98
+
99
+ virtual void enter( entityType* ) = 0;
100
+
101
+
102
+
103
+ // ステート実行処理
104
+
105
+ virtual void execute( entityType* ) = 0;
106
+
107
+
108
+
109
+ // ステート終了処理
110
+
111
+ virtual void exit( entityType* ) = 0;
112
+
113
+
114
+
115
+ // メッセージ受信時の処理
116
+
117
+ virtual bool onMessage( entityType*, const Message& ) = 0;
118
+
119
+ };
120
+
121
+ ```
122
+
123
+ ### 該当のソースコード(Player.h)
124
+
125
+ ```C++
126
+
127
+ #pragma once
128
+
129
+
130
+
131
+ #include "BaseEntity.h"
132
+
133
+ #include "StateMachine.h"
134
+
135
+ #include "PlayerOwnedState.h"
136
+
137
+
138
+
139
+ class Player : public BaseEntity{
140
+
141
+ public:
142
+
143
+
144
+
145
+ Player( int id )
146
+
147
+ : mStateMachine( new StateMachine<Player>(this) )
148
+
149
+ , BaseEntity( id ) {
150
+
151
+
152
+
153
+ mStateMachine->setState( Walk::instance() );
154
+
155
+
156
+
157
+ }
158
+
159
+
160
+
161
+ // ステートマシーン
162
+
163
+ StateMachine<Player>* mStateMachine;
164
+
165
+
166
+
167
+ // ループ処理
168
+
169
+ void update() override;
170
+
171
+
172
+
173
+ // メッセージ処理
174
+
175
+ virtual bool handleMessage( const Message& msg ) { return true; }
176
+
177
+
178
+
179
+ };
180
+
181
+ ```
78
182
 
79
183
  ### 補足情報(FW/ツールのバージョンなど)
80
184