2点間の角度を求める

先日紹介した「ジョイスティック」を使って、取得したCCPointを元に、ジョイスティックの角度を求める方法を紹介します。 例えば、ジョイスティックの方向にビームを発射したり、Spriteの向きを変えたりと、角度を求めることで色々なことが可能になります。

[cocos2dxでジョイスティックを利用する]

2点間の角度を求める

まずは、基準点と目標となる点を用意します。 例えば、Playerの位置を基準点ジョイスティックのCCPointを目標点とするなど。

2013 7 22 ds

具体的なコード

コードは以下のようになります。 [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)ゲーム開発のための数学・物理学入門 改訂版 (Professional game programming)
ウェンディ・スターラー,山下 恵美子

ソフトバンククリエイティブ
売り上げランキング : 46487

Amazonで詳しく見る