- 本帖最后由 huangrui200123 于 2013-1-29 09:02 编辑 *
最近在 做一个带有旋转炮塔的小游戏 但是卡在 如何控制炮台的角度控制上 :在参看了大量的资料以后 依然无法理解其中的原理(数学功底太差,三角函数无法理解), 希望能在这里向各位大侠们高抬贵手给小弟一个样例 学习:
问题:
通过触摸回调函数中的CCTouch *Touch = (CCTouch*)(pTouches->anyObject());
CCPoint location = Touch ->getLocation(); ←获得了 一个点
float offX=location.x;
float offY=location.y; //然后拿到啦 X Y
炮台被设置在啦 屏幕的中间
按照样例上的方法构造啦
//计算角度====================================================
float angleRadians = atanf((float)offY / (float)offX); //获得了弧度~~ (⊙_⊙)嗯至少例子上是这么说的
float angleDegrees = CC_RADIANS_TO_DEGREES(angleRadians); //转成角度 翻译的文字是"弧度转成摄氏度"
float cocosAngle = -1 * angleDegrees; //取个反
pT->setRotation(cocosAngle); //旋转精灵
之后的情况就是 那个角度真么转也转 不对 要不就是偏差太大 要不就是完全转不到左边来.
希望能有大侠帮个忙吧~