-(void) ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
{
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
shootVector = ccpSub(location, cannon.position);
CGFloat shootAngle = ccpToAngle(shootVector);
cocosAngle = CC_RADIANS_TO_DEGREES(-1 * shootAngle);
CGFloat rotateDiff = cocosAngle;
if (rotateDiff > 180)
rotateDiff -= 360;
if (rotateDiff < -180)
rotateDiff += 360;
CGFloat rotateSpeed = 360;
rotateDuration = fabs(rotateDiff / rotateSpeed);
[cannon runAction:[CCSequence actions:
[CCRotateTo actionWithDuration:rotateDuration angle:cocosAngle],
[CCCallFunc actionWithTarget:nil selector:nil],
nil]];
top.rotation = cannon.rotation;
}
上面的代码导致触摸时旋转 360 度,相反,我想将我的大炮旋转 180 度或更小..
任何帮助将不胜感激。
最佳答案
使用CCRotateBy命令而不是CCRotateTo命令将导致旋转一定量而不是转到某个位置。调用它的方式与 CCRotateTo 相同,如下所示:
[CCRotateBy actionWithDuration:rotateDuration angle:180]
关于iphone - 如何用cocos2d-iphone旋转 Sprite 180度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16084135/