0

私はこれができるようにしたかった:

vec2 pos(1,5);
myActor.position = [Coord positionFrom: pos ];

私の構造を使用する:

typedef float32 float;
struct vec2 {
    vec2(float32 xx, float32 yy) {
        x = xx;
        y = yy;
    }
    float32 x, y;
};

Coord.h

@interface Coord : NSObject {
}
+(CGPoint) positionFrom: (vec2) pos;
+(CGPoint) positionFromAngle: (float32) angle;

Coord.mm

#import "Coord.h"
@implementation Coord
+(CGPoint) positionFrom:(vec2) pos {
    return CGPointMake( pos.x * 32, pos.y * 32);
}
+(CGPoint) positionFromAngle:(float32) angle {
    return CGPointMake( cos(angle) * 32, cos(angle) * 32);
}
@end

しかし、これらのエラーが発生します(Coord.hのpositionFrom行):

Expected ')' before 'vec2'
Expected ')' before 'float32'
4

1 に答える 1

0

これは次のようになります。

+(CGPoint) positionFrom: (struct vec2) pos;

または、を定義するヘッダーファイルのインポートに失敗しましたvec2

]returnステートメントにも末尾がありpositionFrom:ます。

ところで、スタイル的には、この種のことは通常、クラスメソッドではなく関数を使用して行われます。このようなもの:

CGPoint CGPointFromVec2( struct vec2 pos );

それはそれをに平行にしCGPointFromString()ます。

于 2011-04-12T04:01:24.007 に答える