teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

情報の追記

2021/06/11 07:22

投稿

THETA97556919
THETA97556919

スコア5

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; //ここで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

情報の追記

2021/06/11 07:22

投稿

THETA97556919
THETA97556919

スコア5

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

情報の追記

2021/06/11 07:03

投稿

THETA97556919
THETA97556919

スコア5

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
  ### 該当のソースコード