) ); //设置背景图的渐隐渐现
void MainLayer::ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent)
{//触摸事件
CCSetIterator it = pTouches->begin();//获取触摸事件对象
CCTouch* touch = (CCTouch*)(*it);
CCPoint location = touch->getLocation();//获取点击的位置
CCNode* s = getChildByTag(kTagSprite);//通过id获取角色对象
s->stopAllActions();//停止该角色所有当前动作
s->runAction( CCMoveTo::create(1, CCPointMake(location.x, location.y) ) );//运行移动到被点击的位置
float o = location.x - s->getPosition().x;//
float a = location.y - s->getPosition().y;
float at = (float) CC_RADIANS_TO_DEGREES( atanf( o/a) ); //反切值。可以做塔防游戏时炮口方向使用,旋转精灵的方向,CC_RADIANS_TO_DEGREES宏的意思是转换成度数
if( a < 0 )
{
if( o < 0 )
at = 180 + fabs(at);
else
at = 180 - fabs(at); //求浮点数x的绝对值
}
s->runAction( CCRotateTo::create(1, at) );//旋转到,第二个参数是角度
}
abs是针对整数的求绝对值
fabs是针对浮点数