zoukankan      html  css  js  c++  java
  • cocos2d-x 图形绘制

    转自:http://blog.csdn.net/zhy_cheng/article/details/8480048

    图形绘制的话,在cocos2d-x自带的TestCpp里有,包括绘制点,直线,多边形(填充的和没有填充的),圆,贝赛尔曲线。

    首先在HelloWorld类中重写父类的draw方法

    virtual void draw();  

    在源文件中将init中的类容删去,应为init方法比draw先执行,会覆盖我们画出的效果。删除之后,init方法如下

    bool HelloWorld::init()
    {
        bool bRet = false;
        do 
        {
            CC_BREAK_IF(! CCLayer::init());
            bRet = true;
        } while (0);
    
        return bRet;
    }

    然后在draw方法中写如下代码:

    void HelloWorld::draw()
    {
        CHECK_GL_ERROR_DEBUG();
        /*
        画一条直线,默认的宽度是1,颜色是白色,不透明,glEnable(GL_LINE_SMOOTH);
        默认的情况下是后面不再设置颜色后线宽
        */
    
        glLineWidth( 1.0f );
        ccDrawColor4B(255,255,255,255);
        ccDrawLine(ccp(0,0),ccp(480,320));
        CHECK_GL_ERROR_DEBUG();
    
        glLineWidth( 5.0f );
        ccDrawColor4B(255,0,0,255);
        ccDrawLine(ccp(0,320), ccp(480,0));
        CHECK_GL_ERROR_DEBUG();
    
        //ccPointSize(128);这个没用啊
        ccDrawColor4B(0,255,255,128);
        ccDrawPoint( ccp(240,200) );
        CHECK_GL_ERROR_DEBUG();
    
        // 4个点一起画
        CCPoint points[] = { ccp(60,60), ccp(70,70), ccp(60,70), ccp(70,60) };
        ccPointSize(4);
        ccDrawColor4B(0,255,255,255);
        ccDrawPoints( points, 4);
    
        // draw a green circle with 10 segments
        glLineWidth(1);
        ccDrawColor4B(0, 255, 0, 255);
        ccDrawCircle( ccp(240,160),//圆心
            100,//半径
            1, //如果后面设置了从圆心到圆的连线为true的话,
            //这个值是连线的角度,0为水平向左,逆时针
            360,//将这个圆分为多少块
            true//是否有从圆心到圆的连线
            );
    
        //画一个多边形
        ccDrawColor4B(255, 255, 0, 255);
        glLineWidth(1);
        CCPoint vertices[] = { ccp(0,0), ccp(50,50), ccp(100,50), ccp(100,100), ccp(50,100) };
        ccDrawPoly( vertices, 5, true//是否封闭
            );
    
         // 填充的多边形
        glLineWidth(1);
        CCPoint filledVertices[] = { ccp(0,120), ccp(50,120), ccp(50,170), ccp(25,200), ccp(0,170) };
        ccDrawSolidPoly(filledVertices, 5, ccc4f(0.5f, 0.5f, 1, 1 )//填充颜色
            );
    
        //贝塞尔曲线
        ccDrawColor4B(255, 255, 0, 255);
        ccDrawCubicBezier(ccp(0,0),//开始点
            ccp(50,50),//控制点
            ccp(250,100),//控制点
            ccp(300,300),//目标点
            100//分成多少段得到的曲线
            );
    
        // 还原默认值
        glLineWidth(1);
        ccDrawColor4B(255,255,255,255);
        ccPointSize(1);
    }

  • 相关阅读:
    PE系统盘
    python常用方法手记
    python tushare
    idea导入导出java jar包
    javaweb项目配置tomcat启动
    window安装tomcat
    解决idea控制台乱码
    maven手记
    java redis常见问题
    java mysql常见问题
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/3195624.html
Copyright © 2011-2022 走看看