2012-04-12 86 views
3

所以我想创建一个带有cocos2d原语的圆形,然后用它作为精灵,请问我该怎么做? 我知道我不得不使用这样的事情:cocos2d创建一个圆形并用它作为精灵

glLineWidth(16); glColor4ub(0, 255, 0, 255); drawCircle(ccp(s.width/2, s.height/2), 100, 0, 10, NO); 但对我来说很难理解它是如何工作以及如何使用它作为一个精灵

回答

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是一个cocos2d函数,在CCDrawingPrimitives.h中声明

+0

我知道,但我想下一步是什么:) – 2012-04-13 17:07:03

+0

你能解释一下,为什么你需要CCSprite实例,而不是CCNode?也许然后我可以尝试帮助你找到解决方案 – Morion 2012-04-16 07:16:37

+0

我想CCNode,我知道我必须做 - (void)绘制,但我的问题是,我不知道该怎么把这个方法,以及如何把在我的场景中创建的圈子。对不起,我的英语我是法语:) – 2012-04-16 08:56:43