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
初歩的な質問ですみません。力をお貸しください。
その「ある程度判っている理屈」がどんなもので、自分でどう実装してみてどう失敗したかを教えてください。
回答1件
あなたの回答
tips
プレビュー