ゲーム制作勉強中!あこがれだったプログラマーに今からなろう!

昔、あこがれていたプログラマー。今からでも勉強してみようと思い立ち、チャレンジ開始! 勉強メモや、悪戦苦闘な日々の記録です。

シューティングゲームを作ろう!(2)

三角関数を思い出そう。

使うのはsinとcos。そしてパイが180°という概念。

角度0°の時、sinも0となる。

そして、90°の時、sinは1となり、パイ(180°)の時、sinは0になり、 3/2パイ(270°)時、sinは-1となる。

cosの場合、角度0°の時、cosは1から始まり、角度の増加と共に0に近づき、90°で0となる。

その後、180°までかけて-1になり、360°にかけて1になる。

下の簡単な表の通り。

 

そして、Unityの2Dの世界で、右方向は0°という概念。

360°は2パイという事実。

これが判れば、x軸をcosで求め、y軸をsinで求めれば、 角度通りに移動させたい時にtransform.positionを毎フレームどれだけ動かせば良いのか導き出せる。

例えば、右方向(0°)に移動させたい場合、x軸移動はcos(0)=1、y軸移動はsin(0)=0 つまり、 transform.position += new Vector3(1,0,0)で右に移動する 0°を基軸に、パイが180°、2パイが360°を基準に表現すれば、求めたい角度でsin、cosを求める ことができる。

例えば、右斜め45°に移動したい場合、 180÷45=1/4、つまり、(Mathf.PI)/4となる。 なので、x軸をcos((Mathf.PI)/4)、y軸をsin((Mathf.PI)/4)だけ毎フレーム移動させれば良いことになる。