3

cocos2dでプリミティブを使って円の形を作り、それをスプライトとして使いたいのですが、どうすればいいですか?私はこのようなものを使用しなければならないことを知っています:

glLineWidth(16); glColor4ub(0, 255, 0, 255); drawCircle( ccp(s.width/2, s.height/2), 100, 0, 10, NO); しかし、それがどのように機能し、スプライトとしてどのように使用するかを理解するのは難しいです

4

1 に答える 1

4

本当に CCSprite インスタンスが必要ですか? CCNode のサブクラスを作成できます。

- (void) draw

メソッドはそこにコードを置きます。円の中心位置は (0.f, 0.f) になります。

@implementation MyScene

- (void) onEnter
{
    [super onEnter];
    CCNode* myNode = [MyNodeSubclass node];
    [node setPosition: someRandomPosition ];
    [self addChild: node];
}

@end

@implementation MyNodeSubclass

- (void) draw
{
    glColor4f(255, 255, 255, 255);
    CCPoint center = ccp(0.f, 0.f);
    CGFloat radius = 10.f;
    CGFloat angle = 0.f;
    NSInteger segments = 10;
    BOOL drawLineToCenter = YES;

    ccDrawCircle(center, radius, angle, segments, drawLineToCenter);    
}

@end

このコードをここに書きました。xcode からコピーしたものではありませんが、必要に応じて動作するはずです。ccDrawCircle は、CCDrawingPrimitives.h で宣言された cocos2d 関数です。

于 2012-04-13T13:03:10.063 に答える