問題は簡単かもしれません。私は今日、マウスが指している方向を決定し、その方向に弾を撃つアルゴリズム(おそらく二重のif文になるでしょう)を考えていました。私はすでに弾丸をテストして、決められた方向に射撃することを確認しました。Java 2dマウスでの撮影方向
マウスがプレーヤーの左側、右側、上側、下側、またはプレーヤーのコーナーにある場合、どのように計算するのですか?
解決済み:すべてのお手伝いをしてくれてありがとうございました。私は考え方の一日を過ごしました。私がしたのは、if文を使ってマウスを押下したときに、プレーヤー、下部、右、左、または角の上部と衝突するかどうかを判断することです。とにかく、ここに私のコードです。 P.S.変数x1をmousex、y1をmousey、xをplayerx、yをプレーヤーyとして使用しました。私が持っている唯一の他の変数はdxとdyですが、それらが何をしているのか知っていなければなりません。
//top
if (x1 > x && x1 < x + 40 && y1 > y - 250 && y1 < y){
dy = -1;
dx = 0;
}
//right
if (x1 > x + 40 && x1 < x + 250 && y1 > y && y1 < y + 40){
dx = 1;
dy = 0;
}
//bottom
if (x1 > x && x1 < x + 40 && y1 > y+40 && y1 < y+250){
dy = 1;
dx = 0;
}
//left
if (x1 < x && x1 > x - 250 && y1 > y && y1 < y + 40){
dx = -1;
dy = 0;
}
//top right corner
if (x1 > x + 40 && x1 < x + 250 && y1 > y - 250 && y1 < y){
dx = 1;
dy = -1;
}
//top left corner
if (x1 < x && x1 > x - 250 && y1 > y - 250 && y1 < y){
dx = -1;
dy = -1;
}
//bottom right corner
if (x1 > x + 40 && x1 < x + 250 && y1 > y + 40 && y1 < y + 250){
dx = 1;
dy = 1;
}
//bottom left corner
if (x1 < x && x1 > x - 250 && y1 > y + 40 && y1 < y + 250){
dx = -1;
dy = 1;
}
実際の質問は何ですか?マウスの位置(x座標とy座標)を知っていて、銃の位置を知っていれば、単純な幾何学と数学で弾の角度やxとyの速度を決める必要があります。 – DGH
私の実際の質問は、マウスがプレーヤーの左側、右側、上側、下側、またはプレーヤーの角にある場合の計算方法はどうですか? – 36redsoxfan
単純代数があなたに答えますあなたが見ているすべてが一般的な方向であれば、三角法も必要ありません。あなたは何を試していますか、あなたのコードのどこにいらっしゃいましたか? –