質問編集履歴

3

質問内容と異なる部分を再度編集しました。

2019/07/25 10:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,14 @@
12
12
 
13
13
 
14
14
 
15
+ 質問ですが全体を把握するためのGameクラスを作りそこにプレイヤーとマップ管理クラスを書いたがために
16
+
17
+ この問題にあたっているのですがこれはどうすれば解決できるのかが知りです。
18
+
19
+ そもそもこのコーディングが間違えたのかなと思うのですが
20
+
21
+
22
+
15
23
 
16
24
 
17
25
  ```Player.cpp
@@ -427,3 +435,59 @@
427
435
 
428
436
 
429
437
  ```
438
+
439
+
440
+
441
+
442
+
443
+ ```Game.h
444
+
445
+ #include "Dxlib.h"
446
+
447
+ #include "Game.h"
448
+
449
+
450
+
451
+
452
+
453
+ Game::Game()
454
+
455
+ {
456
+
457
+
458
+
459
+ }
460
+
461
+
462
+
463
+
464
+
465
+ void Game::Update()
466
+
467
+ {
468
+
469
+
470
+
471
+ m->Update();
472
+
473
+ p->Update();
474
+
475
+
476
+
477
+ }
478
+
479
+
480
+
481
+ void Game::Draw_Update()
482
+
483
+ {
484
+
485
+ m->Draw_Update();
486
+
487
+ p->Draw_Update();
488
+
489
+
490
+
491
+ }
492
+
493
+ ```

2

文章と提示コードを追加しました。

2019/07/25 10:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,13 +2,19 @@
2
2
 
3
3
  他クラスのマップ管理クラスの当たり判定メソッドを使って当たっているか毎回確認したいのですがどうすればいいのでしょうか?
4
4
 
5
+
6
+
5
- bool map_col(int x,int yy){ }
7
+ Mapソースファイルの当たり判定関数(コメント部)でプレイヤーの座標を引数に入れて
8
+
6
-
9
+ 当たっているかどうかを判定してあたっていなかったら重力でまた下に移動するという処理を作りたいです。
7
-
8
-
9
-
10
-
10
+
11
+
12
+
13
+
14
+
15
+
16
+
11
- ```ここに言語を入力
17
+ ```Player.cpp
12
18
 
13
19
  #include "Input.h"
14
20
 
@@ -207,3 +213,217 @@
207
213
 
208
214
 
209
215
  ```
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+ Map.cpp
230
+
231
+ ```Map.cpp
232
+
233
+ #include "DxLib.h"
234
+
235
+ #include "Map.h"
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+ static int Map_debug = 0;
244
+
245
+
246
+
247
+
248
+
249
+ /*コンストラクタ*/
250
+
251
+ Map::Map(const char* str) :pos{0,0}
252
+
253
+ {
254
+
255
+ if (LoadDivGraph(str, 40, 10, 4, 64, 64, g_handle) == -1) { Map_debug = -1; }
256
+
257
+
258
+
259
+ }
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+ void Map::Update()
268
+
269
+ {
270
+
271
+
272
+
273
+ }
274
+
275
+
276
+
277
+ /*当たり判定////////////////////////////////////////////////////////////////////////////////////////*/
278
+
279
+ bool Map::Map_Col(int x, int y)
280
+
281
+ {
282
+
283
+ return true;
284
+
285
+ }
286
+
287
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
288
+
289
+
290
+
291
+ void Map::Draw_Update()
292
+
293
+ {
294
+
295
+ //DrawFormatString(0, 0, GetColor(255, 255, 255), "%d",Map_debug);
296
+
297
+
298
+
299
+ for (int y = 0; y < 20; y++)
300
+
301
+ {
302
+
303
+ for (int x = 0; x < 20; x++)
304
+
305
+ {
306
+
307
+
308
+
309
+ DrawGraph(y * CELL,x * CELL,g_handle[Draw_set_stage(x,y)],true);
310
+
311
+ }
312
+
313
+ }
314
+
315
+
316
+
317
+
318
+
319
+ }
320
+
321
+
322
+
323
+ /*描画チップを選別*/
324
+
325
+ /*
326
+
327
+
328
+
329
+ 5 レンガ
330
+
331
+
332
+
333
+ */
334
+
335
+ int Map::Draw_set_stage(int x,int y)
336
+
337
+ {
338
+
339
+ int t = draw_map[x][y];
340
+
341
+
342
+
343
+ switch (t)
344
+
345
+ {
346
+
347
+ case 0://なにもない
348
+
349
+ return -1;
350
+
351
+ break;
352
+
353
+
354
+
355
+ case 2://レンガ
356
+
357
+ return 5;
358
+
359
+ break;
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+ }
368
+
369
+
370
+
371
+
372
+
373
+
374
+
375
+
376
+
377
+
378
+
379
+ }
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+ /*座標の取得と設定*/
388
+
389
+ void Map::sPos_x(int xx)
390
+
391
+ {
392
+
393
+ pos.x += xx;
394
+
395
+ }
396
+
397
+
398
+
399
+ void Map::sPos_y(int yy)
400
+
401
+ {
402
+
403
+ pos.y += -yy;
404
+
405
+ }
406
+
407
+
408
+
409
+ int Map::gPos_x()
410
+
411
+ {
412
+
413
+ return pos.x;
414
+
415
+ }
416
+
417
+
418
+
419
+ int Map::gPos_y()
420
+
421
+ {
422
+
423
+ return pos.y;
424
+
425
+ }
426
+
427
+
428
+
429
+ ```

1

タイトルを編集

2019/07/25 07:18

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- c++ ゲーム制作で他クラスの関数を使って当たり判定を管理する方法が知りたい。
1
+ dxlib 他クラスの関数を使って当たり判定を管理する方法が知りたい。
test CHANGED
File without changes