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プロジェクトからコピーして貼り付けた私のコードです。プロジェクトがcocos2dV2だったというだけです。(?)

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 に答える