0

这段代码有什么问题?

-(float) getRotatingAngle : (CGPoint)firstPoint secondPoint:(CGPoint)secondPoint
{
   float dx = firstPoint.x - secondPoint.x;
   float dy = firstPoint.y - secondPoint.y;
   float angle = CC_RADIANS_TO_DEGREES(atan2(dy, dx));
   return angle;
}

当我尝试这样称呼它时:

float ang = [self getRotatingAngle:projectile.position secondPoint:projectile.position];

我从标题中得到错误。我正在使用 cocos2d (COCOS2D_VERSION 0x00010001)。

代码ccTouchesEnded位于CCLayerColor.

任何帮助表示赞赏。

编辑:射弹是CCSprite

编辑:编译器错误是(如标题)Incompatible types in initialization. TheLayer may not respond to '-getRotatingAngle:secondPoint'

提示:这是我从 cocos2d 项目中复制粘贴的代码,它在那里工作。只是该项目是cocos2d V2。(?)

4

2 回答 2

1

您可以将私有方法定义添加到 .m 文件的顶部,如下所示:

@interface SomeClass ()  // Note the empty parens here

-(float) getRotatingAngle : (CGPoint)firstPoint secondPoint:(CGPoint)secondPoint;

@end

这使您可以稍后在 .m 中以您想要的任何顺序组织您的方法。

于 2012-06-01T20:19:07.330 回答
0

哇。我只是将方法移到第一个调用之上。然后它起作用了。非常讨厌。

于 2012-06-01T20:11:59.747 回答