先日紹介した「ジョイスティック」を使って、取得したCCPointを元に、ジョイスティックの角度を求める方法を紹介します。 例えば、ジョイスティックの方向にビームを発射したり、Spriteの向きを変えたりと、角度を求めることで色々なことが可能になります。
[cocos2dxでジョイスティックを利用する]
2点間の角度を求める
まずは、基準点と目標となる点を用意します。 例えば、Playerの位置を基準点、ジョイスティックのCCPointを目標点とするなど。
具体的なコード
コードは以下のようになります。 [c]
CCPoint mPos = //ジョイスティックのCCPoint
CCPoint sPos = this->getPosition(); //PlayerのPosition
float Angle = ccpToAngle(ccpSub(hPos,sPos));
Angle = CC_RADIANS_TO_DEGREES(hAngle);
Angle *= -1;
[/c]
これで、角度が導き出せます。 ここで求めたAngleをsetRotation()などで利用します。
[c]
sprite->setRotation(Angle);
[/c]
最後に
学生時代に数学をあまり勉強していなかったので、今更ながらもっと勉強をしておけばよかったなと思っています。 こういった便利な数学がまだまだ他にもたくさんあると思うので、実際に使うかどうかは別として、知っておくに越したことはないな。
ゲーム開発のための数学・物理学入門 改訂版 (Professional game programming) ウェンディ・スターラー,山下 恵美子 ソフトバンククリエイティブ 売り上げランキング : 46487 Amazonで詳しく見る |