質問編集履歴
3
情報の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -130,6 +130,7 @@
|
|
130
130
|
|
131
131
|
以下追記:
|
132
132
|
Reader()を生成している箇所について
|
133
|
+
GameScene.cpp(26)
|
133
134
|
|
134
135
|
GameScene.h
|
135
136
|
```C++
|
@@ -147,7 +148,7 @@
|
|
147
148
|
private:
|
148
149
|
int m_level;
|
149
150
|
std::shared_ptr<Field> m_field;
|
150
|
-
std::shared_ptr<Reader> m_reader;
|
151
|
+
std::shared_ptr<Reader> m_reader;
|
151
152
|
|
152
153
|
public:
|
153
154
|
const static char* ParameterTagStage;
|
@@ -165,6 +166,115 @@
|
|
165
166
|
static std::shared_ptr<MethodBox> m_dummy;
|
166
167
|
};
|
167
168
|
```
|
169
|
+
|
170
|
+
GameScene.cpp
|
171
|
+
```C++
|
172
|
+
#include "GameScene.h"
|
173
|
+
#include <DxLib.h>
|
174
|
+
|
175
|
+
using namespace std;
|
176
|
+
|
177
|
+
const char* GameScene::ParameterTagStage = "ParameterTagStage";
|
178
|
+
|
179
|
+
std::shared_ptr<MethodBox> GameScene::m_methodBoxRed; //staticメンバの実体
|
180
|
+
std::shared_ptr<MethodBox> GameScene::m_methodBoxBlue;
|
181
|
+
std::shared_ptr<MethodBox> GameScene::m_methodBoxIf;
|
182
|
+
std::shared_ptr<MethodBox> GameScene::m_methodBoxWhile;
|
183
|
+
std::shared_ptr<MethodBox> GameScene::m_dummy;
|
184
|
+
|
185
|
+
//このシーンで使用するオブジェクトの生成
|
186
|
+
GameScene::GameScene(SceneChangedListener* _impl, const Parameter& _parameter) : SceneBace(_impl, _parameter)
|
187
|
+
{
|
188
|
+
m_level = _parameter.get(ParameterTagStage);
|
189
|
+
|
190
|
+
switch (m_level)
|
191
|
+
{
|
192
|
+
case Define::enumStage::Demo:
|
193
|
+
m_methodBoxRed = make_shared<MethodBox>(200, 200, 160, 50, "赤い丸を表示", &Method::RedCircle);
|
194
|
+
m_methodBoxBlue = make_shared<MethodBox>(500, 200, 160, 50, "青い丸を表示", &Method::BlueCircle);
|
195
|
+
m_methodBoxIf = make_shared<MethodBox>(100, 100, 280, 50, "赤丸が表示されているなら", &Method::SwitchIfState);
|
196
|
+
m_methodBoxWhile = make_shared<MethodBox>(500, 100, 100, 50, "ずっと", &Method::ContinueState);
|
197
|
+
m_reader = make_shared<Reader>(); //ここでReaderを生成
|
198
|
+
break;
|
199
|
+
|
200
|
+
case Define::enumStage::Tutorial:
|
201
|
+
break;
|
202
|
+
|
203
|
+
default:
|
204
|
+
break;
|
205
|
+
}
|
206
|
+
|
207
|
+
m_field = make_shared<Field>();
|
208
|
+
m_dummy = make_shared<MethodBox>(1, 1, 0, 0, "", &Method::Dummy);
|
209
|
+
|
210
|
+
}
|
211
|
+
|
212
|
+
//現在のシーンのフレーム処理
|
213
|
+
void GameScene::update()
|
214
|
+
{
|
215
|
+
switch (m_level)
|
216
|
+
{
|
217
|
+
case Define::enumStage::Demo:
|
218
|
+
m_methodBoxRed->update();
|
219
|
+
m_methodBoxBlue->update();
|
220
|
+
m_methodBoxIf->update();
|
221
|
+
m_methodBoxWhile->update();
|
222
|
+
m_reader->update();
|
223
|
+
break;
|
224
|
+
|
225
|
+
case Define::enumStage::Tutorial:
|
226
|
+
break;
|
227
|
+
|
228
|
+
case Define::enumStage::Exe:
|
229
|
+
m_reader->update();
|
230
|
+
break;
|
231
|
+
|
232
|
+
default:
|
233
|
+
break;
|
234
|
+
}
|
235
|
+
|
236
|
+
m_field->update();
|
237
|
+
m_dummy->update();
|
238
|
+
|
239
|
+
if (CheckHitKey(KEY_INPUT_ESCAPE))
|
240
|
+
{
|
241
|
+
m_SceneChanged->SceneBack();
|
242
|
+
}
|
243
|
+
}
|
244
|
+
|
245
|
+
//現在のシーンの描画処理
|
246
|
+
void GameScene::draw() const
|
247
|
+
{
|
248
|
+
switch (m_level)
|
249
|
+
{
|
250
|
+
case Define::enumStage::Demo:
|
251
|
+
|
252
|
+
m_methodBoxRed->draw();
|
253
|
+
m_methodBoxBlue->draw();
|
254
|
+
m_methodBoxIf->draw();
|
255
|
+
m_methodBoxWhile->draw();
|
256
|
+
m_reader->draw();
|
257
|
+
m_reader->ReadButton(Define::ReadButton_X1, Define::ReadButton_Y1, 75, 75, "実行");
|
258
|
+
break;
|
259
|
+
|
260
|
+
case Define::enumStage::Tutorial:
|
261
|
+
DrawString(100, 100, "準備中", GetColor(255, 255, 255));
|
262
|
+
break;
|
263
|
+
|
264
|
+
case Define::enumStage::Exe:
|
265
|
+
break;
|
266
|
+
|
267
|
+
|
268
|
+
default:
|
269
|
+
break;
|
270
|
+
}
|
271
|
+
|
272
|
+
m_field->draw();
|
273
|
+
m_dummy->draw();
|
274
|
+
|
275
|
+
|
276
|
+
}
|
277
|
+
```
|
168
278
|
### 試したこと
|
169
279
|
|
170
280
|
[この](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1320568963)リンクにかかれてある、
|
2
情報の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -128,6 +128,43 @@
|
|
128
128
|
};
|
129
129
|
```
|
130
130
|
|
131
|
+
以下追記:
|
132
|
+
Reader()を生成している箇所について
|
133
|
+
|
134
|
+
GameScene.h
|
135
|
+
```C++
|
136
|
+
#pragma once
|
137
|
+
|
138
|
+
#include <memory>
|
139
|
+
#include "SceneBase.h"
|
140
|
+
#include "MethodBox.h"
|
141
|
+
#include "Reader.h"
|
142
|
+
#include "Field.h"
|
143
|
+
#include "Task.h"
|
144
|
+
|
145
|
+
class GameScene : public SceneBace
|
146
|
+
{
|
147
|
+
private:
|
148
|
+
int m_level;
|
149
|
+
std::shared_ptr<Field> m_field;
|
150
|
+
std::shared_ptr<Reader> m_reader; //ここでReaderを生成
|
151
|
+
|
152
|
+
public:
|
153
|
+
const static char* ParameterTagStage;
|
154
|
+
|
155
|
+
GameScene(SceneChangedListener* _impl, const Parameter& _parameter);
|
156
|
+
virtual ~GameScene() = default;
|
157
|
+
|
158
|
+
void update() override;
|
159
|
+
void draw() const override;
|
160
|
+
|
161
|
+
static std::shared_ptr<MethodBox> m_methodBoxRed;
|
162
|
+
static std::shared_ptr<MethodBox> m_methodBoxBlue;
|
163
|
+
static std::shared_ptr<MethodBox> m_methodBoxIf;
|
164
|
+
static std::shared_ptr<MethodBox> m_methodBoxWhile;
|
165
|
+
static std::shared_ptr<MethodBox> m_dummy;
|
166
|
+
};
|
167
|
+
```
|
131
168
|
### 試したこと
|
132
169
|
|
133
170
|
[この](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1320568963)リンクにかかれてある、
|
1
情報の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,6 +7,14 @@
|
|
7
7
|
|
8
8
|
```
|
9
9
|
C2512 Reader::Readerクラス、構造体、共用体に既定のコンストラクターがありません
|
10
|
+
|
11
|
+
追記:エラーが出ているのはxutility(138行目)です。
|
12
|
+
|
13
|
+
//FUNCTION TEMPLATE _Construct_in_place
|
14
|
+
template<class _Ty, class... _Types>
|
15
|
+
void _Construct_in_place(_Ty& Obj, _Types&&... _Args)noexcept(is_nothrow_constructible_v<_Ty, _Types...>{
|
16
|
+
::new(_Voidify_iter(_STD addressof(Obj))) _Ty(_STD forward<_Types>(_Args)...); //この行_Tyで「指定された引数によるテンプレートのインスタンス化でエラーが発生しました」と警告が出ている
|
17
|
+
}
|
10
18
|
```
|
11
19
|
|
12
20
|
### 該当のソースコード
|