斜めに当たり判定をつけたいのですが、やり方が全然分かりません。
どうやってやればいいのでしょうか?
#include "DxLib.h"
int pX = 320, pY = 240, pW, pH;
int sX = 100, sY = 100, sW, sH;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
ChangeWindowMode(TRUE); // ウィンドウモードに変更
if (DxLib_Init() == -1) return -1;
int damage = 0;
while (!ProcessMessage()) {
SetDrawScreen(DX_SCREEN_BACK); //描画先を裏画面に変更
ClearDrawScreen(); //裏画面のデータを全て削除
if (CheckHitKey(KEY_INPUT_UP) == 1) pY -= 3;
if (CheckHitKey(KEY_INPUT_DOWN) == 1) pY += 3;
if (CheckHitKey(KEY_INPUT_LEFT) == 1) pX -= 3;
if (CheckHitKey(KEY_INPUT_RIGHT) == 1) pX += 3;
//プレイヤーの操作設定
int player = LoadGraph("player.png");
GetGraphSize(player, &pW, &pH);
DrawGraph(pX, pY, player, TRUE);
//プレイヤーの描画
int stick = LoadGraph("stick.png");
GetGraphSize(stick, &sW, &sH);
DrawRotaGraph(sX, sY, 1.0f, 45 * DX_PI_F / 180, stick, TRUE);
//障害物の描画
if (pX >= sX-pW-sW/2 && pX <= sX + sW-sW / 2 &&
pY >= sY-pH-sH/2 && pY<=sY+sH-sH/2) {
damage = 1;
}
else {
damage = 0;
}
//ダメージ範囲
DrawFormatString(0, 0, GetColor(255, 255, 255), "%d %d", damage,pX);
ScreenFlip(); //裏画面データを表画面へ反映
}
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}