Xcode cocos2d创建圆形并将其用作精灵

Xcode cocos2d创建圆形并将其用作精灵,xcode,cocos2d-iphone,shape,geometry,primitive,Xcode,Cocos2d Iphone,Shape,Geometry,Primitive,所以我想在cocos2d上创建一个带有原语的圆形,然后将其用作精灵,请问我该怎么做? 我知道我必须使用这样的东西: glLineWidth(16); glColor4ub(0,255,0,255); 拉丝圈(ccp(s.width/2,s.height/2),100,0,10,NO); 但是我很难理解它是如何工作的,以及如何将它用作精灵您真的需要CCSprite实例吗?您可以创建CCNode的子类,然后在其 - (void) draw 方法将代码放在那里。你的圆将有它的中心位置(0.f,0.

所以我想在cocos2d上创建一个带有原语的圆形,然后将其用作精灵,请问我该怎么做? 我知道我必须使用这样的东西:

glLineWidth(16);
glColor4ub(0,255,0,255);
拉丝圈(ccp(s.width/2,s.height/2),100,0,10,NO);

但是我很难理解它是如何工作的,以及如何将它用作精灵

您真的需要CCSprite实例吗?您可以创建CCNode的子类,然后在其

- (void) draw
方法将代码放在那里。你的圆将有它的中心位置(0.f,0.f)


在这里编写了这段代码,不是从xcode复制的,但它应该可以按照您的需要工作。ccDrawCircle是一个cocos2d函数,在CCDrawingPrimitives中声明。h

我知道,但我想知道下一步是什么:)您能解释一下,为什么需要CCSprite实例,而不是CCNode吗?也许我可以试着帮你找到解决方案我想要CCNode,我知道我必须做-(void)绘制,但我的问题是我不知道在这个方法中放置什么,以及如何放置在场景中创建的圆。对不起我的英语我是法国人:)哦。。。好啊如果要对圆执行smth(例如,如果它是游戏对象的调试版本,因此可能需要移动、缩放、旋转等),请在子类覆盖绘制方法中创建自己的CCNode子类。在此方法中,放置图形代码。例如,在您的案例中设置线条、颜色和绘制圆。然后创建CCNode子类的实例并将其添加到场景中。您将在子类的draw方法的实例位置获得所绘制的所有内容。然后你可以用这个CCNode子类实例做任何你想做的事情(移动、旋转等)。我可以用CCSprite的子类代替CCNode吗?还是对性能有好处?
@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