ios - 如何在CCScene中添加矩形?

 ZZ张朝_288 发布于 2022-11-05 01:24

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

- (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显示:"Use of Undeclared identifier GL_LINE_SMOOTH"。
我不想因为这个问题再单独创建一个精灵的image,有没有其他的方法,类似于使用"CGContextAddRect",来解决这种问题?

原问题:Adding rectangles to a CCScene - cocos2d

1 个回答
  • 答: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];
    
       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);
    }
    

    实现的效果如下:

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

    CCLayerColor *rectangleNode = [CCLayerColor layerWithColor:color
                                                         width:width
                                                        height:height];
    rectangleNode.position = position;
    [self addChild:rectangleNode];
    
    2022-11-09 01:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有