将矩形添加到CCScene - cocos2d

时间:2014-01-05 00:19:34

标签: ios objective-c cocos2d-iphone

游戏启动并运行,但我想创建一个矩形层,以便将来开发/维护。这些矩形将在编译时启用。他们将向开发人员展示场景热点。

我已经尝试创建一个新的CCLayer并将其draw方法更改为:

- (void)draw
{
    glEnable(GL_LINE_SMOOTH);
    glColor4ub(255, 255, 255, 255);
    glLineWidth(2);
    CGPoint vertices2[] = { ccp(79,299), ccp(134,299), ccp(134,229), ccp(79,229) };
    ccDrawPoly(vertices2, 4, YES);
}

但是Xcode说“使用未声明的标识符GL_LINE_SMOOTH”

我不想仅为此事创建图像精灵。

我有什么方法可以使用像“CGContextAddRect”这样简单的东西吗?

非常简单......

我在这里找到了许多先进而复杂的方法。这不是我要找的。

谢谢!

2 个答案:

答案 0 :(得分:2)

我不相信OpenGL ES 2.0支持GL_LINE_SMOOTH(我在Khronos组的ES 2.0编程指南中找不到它)。它可能仅在桌面版本中受支持。

我相信你可以使用这些绘图方法轻松绘制矩形和其他东西。

由于这仅用于开发(根据您的问题),我不确定抗锯齿效果有多重要。

void ccDrawPoint (CGPoint point);
void ccDrawPoints (const CGPoint *points, NSUInteger numberOfPoints);
void ccDrawLine (CGPoint origin, CGPoint destination);
void ccDrawRect (CGPoint origin, CGPoint destination);

void ccDrawPoly (const CGPoint *vertices, NSUInteger numOfVertices, BOOL closePolygon);
void ccDrawCircle (CGPoint center, float radius, float angle, NSUInteger segments, BOOL drawLineToCenter);

您也可以填写版本:

void ccDrawSolidRect (CGPoint origin, CGPoint destination, ccColor4F color);
void ccDrawSolidPoly (const CGPoint *poli, NSUInteger numberOfPoints, ccColor4F color);

Here is a reference,带有一些示例代码(请参阅底部的-visit)。

为了确保我不只是丢掉一些随机内容,我创建了一个项目(旧版本的coco2d,1.01),并在以下代码中删除(进入默认的HelloWorldLayer.m):

-(void) visit
{
   [super visit];

   ccDrawPoint(ccp(240, 160));
   ccDrawLine(ccp(100, 100), ccp(400, 300));
   ccDrawCircle(ccp(310, 150), 50, 1, 10, YES);
   ccDrawQuadBezier(ccp(50, 300), ccp(450, 250), ccp(400, 30), 15);
}

这就是它的样子:

enter image description here

这是你需要的吗?

答案 1 :(得分:1)

您可以使用CCLayerColor类在三行代码中添加纯色矩形,而无需任何自定义子类:

CCLayerColor *rectangleNode = [CCLayerColor layerWithColor:color
                                                     width:width
                                                    height:height];
rectangleNode.position = position;
[self addChild:rectangleNode];