ファイアボール
マウスでクリックした方向にファイアボールを飛ばします。
始点と終点から角度を求める
画面中央の点からマウスでクリックした方向にファイボールを飛ばしたいので画面中央の点から見たマウスの位置を求める必要があります。
下の図を見てください。始点(start)から終点(target)へ直線を引いたときの角度directionがファイアボールを飛ばす方向となります。
始点の座標(画面中央の点)と終点の座標(マウス位置)からその間の角度を求めるにはatan2()を使います。数学では逆正接 (アークタンジェント) と呼ばれています。難しいことはともかく使い方は簡単です。
// 始点と終点から角度を計算する double direction = Math.atan2(target.y - start.y, target.x - start.x);
これで角度directionが求まります。directionは-180度〜180度をラジアンで表示した値です。Xの正の方向から半時計周りは負の角度、時計回りは正の角度となります。ラジアンを度に変換するにはMath.toDegrees()が使えます。ソースコード中のdirection の値を表示してみると角度がいくつか直感的につかめるので確かめてみてください。