質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

Q&A

解決済

1回答

6168閲覧

二次元配列における、マップチップの当たり判定について

canan

総合スコア17

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

0グッド

0クリップ

投稿2018/09/05 13:45

DXライブラリを使って、ゲーム開発の練習をしています。
現在、二次元配列(マップチップ)を使って2Dアクション風のステージを作っているのですが、当たり判定の処理が上手く行きません。 
色々なサイトにお邪魔してある程度の理屈はわかるのですが、プログラムに起こすことができません。
どのような処理を行えば、比較的簡単に処理することができますか?

C++

1 2#define PLAYER_WIDTH (32) 3#define PLAYER_HEIGHT (64) 4#define MAP_CHIP_WIDTH (30) 5#define MAP_CHIP_HEIGHT (20) 6#define MAP_CHIP_SIZE (36) 7 8playerX//プレイヤーのX座標 9playerY//プレイヤーのY座標 10/*----------------------------*/ 11 //地形とプレイヤーの当たり判定 12/*----------------------------*/ 13 for (int y = 0; y < MAP_CHIP_HEIGHT; y++) { 14 for (int x = 0; x < MAP_CHIP_WIDTH; x++) { 15 if (map[y][x] == 1) { 16 17 int blx;//左端 18 int brx;//右端 19 int bty;//上端 20 int bby;//下端 21 VECTOR2 player[2]; VECTOR2 block[2]; 22 player[0].pos.x = playerX; //プレイヤーの左端のX座標 23 player[1].pos.x = playerX + PLAYER_WIDTH; //プレイヤーの右端のY座標 24 player[0].pos.y = playerY; //プレイヤーの上端のX座標 25 player[1].pos.y = playerY + PLAYER_HEIGHT; //プレイヤーの下端のY座標 26 27 blx = (x * MAP_CHIP_SIZE); //ブロックの左端のX座標 28 brx = (x * MAP_CHIP_SIZE + MAP_CHIP_SIZE); //ブロックの右端のX座標 29 bty = (y * MAP_CHIP_SIZE); //ブロックの上端のY座標 30 bby = (y * MAP_CHIP_SIZE + MAP_CHIP_SIZE); //ブロックの下端のY座標 31 32 33*/---????---*/ //ここの処理がわからないです。 34

初歩的な質問ですみません。力をお貸しください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takabosoft

2018/09/11 01:22

その「ある程度判っている理屈」がどんなもので、自分でどう実装してみてどう失敗したかを教えてください。
guest

回答1

0

ベストアンサー

こちらのチュートリアルを試してみてはいかがでしょうか。
まずはチュートリアルを行う事で、当たり判定についてプログラムに起こすためのきっかけが掴めるようになるかと思います。
https://ponk.jp/cpp/dxlib/shooting

投稿2019/06/06 16:18

marurunn

総合スコア702

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

canan

2019/06/08 14:29

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問