(ios) 如何在CCScene中添加矩形?

游戏框架基本完成,而且能够顺利运行,但我想创建一个矩形的图层,方便未来的游戏升级或者维护工作。这些矩形会在编译时被启用,为开发者显示屏幕的聚光区(scene hotspots)。
我尝试创建一个新的CCLayer,然后将它的绘图方法变为:

- voiddraw
{ glEnableGL_LINE_SMOOTH; glColor4ub255, 255, 255, 255; glLineWidth2; CGPoint vertices2[] = { ccp79,299, ccp134,299, ccp134,229, ccp79,229 }; ccDrawPolyvertices2, 4, YES;
}

但是Xcode显示:”Use of Undeclared identifier GL_LINE_SMOOTH”。
我不想因为这个问题再单独创建一个精灵的image,有没有其他的方法,类似于使用”CGContextAddRect”,来解决这种问题?

原问题:Adding rectangles to a CCScene – cocos2d

答:FuzzyBunnySlippers
我觉得OpenGL ES 2.0不会支持GL_LINE_SMOOTH,只有Desktop Version版本中支持它。所以我觉得,你可以使用如下绘图方法来绘制矩形和其它的东西:

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;

这里有一些样码,可以供你参考。我创建了一个project(比cocos2d 1.01更低的版本),然后添加了如下代码:

-void visit
{ [super visit]; ccDrawPointccp240, 160; ccDrawLineccp100, 100, ccp400, 300; ccDrawCircleccp310, 150, 50, 1, 10, YES; ccDrawQuadBezierccp50, 300, ccp450, 250, ccp400, 30, 15;
}

实现的效果如下:

答:godel9
你可以使用CCLayerColor类别,添加一种纯色的矩形,只需要输入几行代码,不需要创建其它的子类别:

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注