OpenGLポリゴンを描画するObjective Cクラスを作成しようとしています。私は頂点座標を格納するためにNSMutableArrayを使ってこれを行うことができました。しかし、これはオブジェクトが描画されるたびにNSMutableArrayをccVertex2F []配列に変換するために配列をループする必要があるため、非効率的なようです。Objective Cは、初期化時にプリミティブC配列インスタンス変数を割り当てます。
私がしたいことは、インスタンス変数としてccVertex2F配列を持つことです。次に、初期化時にサイズをポイント数に設定します。しかし、私の配列のサイズは常にゼロであるため、これはエラーをスローします。
私はJavaのプログラミングに経験はありますが、Cやメモリ管理にはまったく新しいものです。今のところ、これは私が持っているものです。
@interface PolygonNode : CCNode {
ccVertex2F * _glPoints ;
}
@property (nonatomic, readwrite) ccVertex2F * glPoints ;
@end
本の私の理解では、私はccVertex2Fへのポインタであるインスタンス変数を作成していますということです。
私は、次のを持っている私のinitメソッドで:
ccVertex2F sizedGlPoints [numberOfPoints * sizeof(ccVertex2F)];
_glPoints = &sizedGlPoints;
これの目的は、私の新しい正確なサイズの配列にインスタンス変数のポイントを作ることでした。しかし、このコードの後にサイズを印刷すると、_glPointsサイズは変更されません。
私がしたいことの核心は、私がメモリを無駄にしないようにクラスを初期化するときに、配列のサイズを選択できるようにすることです。
感謝返信のために。それは完璧に働いた! –