[cocos2dx] 2点間の角度を求める

[cocos2dx] 2点間の角度を求める
   

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

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



2点間の角度を求める

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

2013 7 22 ds


具体的なコード

コードは以下のようになります。


        CCPoint mPos = //ジョイスティックのCCPoint
        CCPoint sPos = this->getPosition(); //PlayerのPosition

        float Angle = ccpToAngle(ccpSub(hPos,sPos));
        Angle = CC_RADIANS_TO_DEGREES(hAngle);
        Angle *= -1;


これで、角度が導き出せます。
ここで求めたAngleをsetRotation()などで利用します。


 sprite->setRotation(Angle);



最後に

学生時代に数学をあまり勉強していなかったので、今更ながらもっと勉強をしておけばよかったなと思っています。
こういった便利な数学がまだまだ他にもたくさんあると思うので、実際に使うかどうかは別として、知っておくに越したことはないな。


ゲーム開発のための数学・物理学入門 改訂版 (Professional game programming)ゲーム開発のための数学・物理学入門 改訂版 (Professional game programming)
ウェンディ・スターラー,山下 恵美子

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

Amazonで詳しく見る

Related Posts Plugin for WordPress, Blogger...