2012-02-29 2 views
1

хорошо в моем UIKit приложение, которое я использовал этот код:создать формы слой в cocos2d

boxPath = CGPathCreateMutable(); 

CGPathMoveToPoint(boxPath, nil, center.x , center.y - 35); 
CGPathAddArcToPoint(boxPath, nil, center.x + 35, center.y - 35, center.x + 35, center.y + 35, 4.7); 
CGPathAddArcToPoint(boxPath, nil, center.x + 35, center.y + 35, center.x - 35, center.y + 35, 4.7); 
CGPathAddArcToPoint(boxPath, nil, center.x - 35, center.y + 35, center.x - 35, center.y, 4.7); 
CGPathAddArcToPoint(boxPath, nil, center.x - 35, center.y - 35, center.x, center.y - 35, 4.7); 

CGPathCloseSubpath(boxPath); 

создать форму, таким образом, у меня был слой с точной формой, что я нарисовал. Как я могу сделать то же самое в cocos2D, пожалуйста? Спасибо. Извините за мой английский, я французский:/

ответ

1

Что вам нужно сделать, это сделать, что путь к CGContext и установить полученное изображение к CCSprite:

CGSize size = CGSizeMake(width, height); // width and height should be predefined 
CGPoint center = CGPointMake(size.width/2, size.height/2); // change this to change where the shape is positioned inside the image (normally will be this value) 
UIGraphicsBeginImageContextWithOptions(size, NO, 0); 

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetLineWidth(context, 1); // Replace 1 with your desired line width 
CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 1.0); // Change RGBA values if needed 

CGMutablePathRef boxPath = CGPathCreateMutable(); 

CGPathMoveToPoint(boxPath, nil, center.x , center.y - 35); 
CGPathAddArcToPoint(boxPath, nil, center.x + 35, center.y - 35, center.x + 35, center.y + 35, 4.7); 
CGPathAddArcToPoint(boxPath, nil, center.x + 35, center.y + 35, center.x - 35, center.y + 35, 4.7); 
CGPathAddArcToPoint(boxPath, nil, center.x - 35, center.y + 35, center.x - 35, center.y, 4.7); 
CGPathAddArcToPoint(boxPath, nil, center.x - 35, center.y - 35, center.x, center.y - 35, 4.7); 

CGPathCloseSubpath(boxPath); 

CGContextAddPath(context, boxPath); 
CGContextStrokePath(context); 

UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
CCTexture2D *texture = [[CCTexture2D alloc] initWithImage:image]; 
CCSprite *sprite = [CCSprite spriteWithTexture:texture]; 
[texture release]; 

[self addChild:sprite]; 
+0

как можно определить ширину и высоту, пожалуйста? soory, но я новичок в cocos2D –

+0

'CGFloat width = 45; // Независимо от того, что вы хотите – jrtc27

+0

И 'CGContextSetRGBStrokeColor (контекст, 0.0, 0.0, 0.0, 1.0);' устанавливает его на сплошную черную. – jrtc27

Смежные вопросы