在cocos2D中创建形状层 [英] create shapes layer in cocos2D

查看:103
本文介绍了在cocos2D中创建形状层的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的UIkit应用中,我使用了以下代码:

well in my UIkit app I used this code:

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中做同样的事情?谢谢。对不起,我的英语是我的法语:/

to create a shape, thus I had a layer with a precise shape that I had drawn. How can I do the same thing in cocos2D please? Thank you. Sorry for my english I'm french :/

推荐答案

您需要做的就是绘制一条通往<$ c $的路径c> CGContext 并将结果图像设置为 CCSprite

What you need to do is draw that path to a CGContext and set the resulting image to a 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];

这篇关于在cocos2D中创建形状层的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆