转载请注明出处:http://blog.csdn.net/oyangyufu/article/details/25841727

绘制图形例如以下:

 

程序代码:

须要又一次定义父类虚函数draw()

1、在HelloWorldScene.h头文件增加:

	virtual void draw();

2、定义实现:

void HelloWorld::draw()
{ //add your code.... CHECK_GL_ERROR_DEBUG();
CCSize size = CCDirector::sharedDirector()->getVisibleSize(); //线宽为1,蓝色线,不透明
//ccDrawLine參数1:绘制起点坐标, 參数2:终点坐标
glLineWidth( 1.0f );
ccDrawColor4B(0,0,255,0);
ccDrawLine(ccp(0, 640,), ccp(960, 0) ); CHECK_GL_ERROR_DEBUG(); //线宽为5,红色线,不透明
//ccDrawLine參数1:绘制起点坐标, 參数2:终点坐标
glLineWidth( 5.0f );
ccDrawColor4B(255,0,0,255);
ccDrawLine(ccp(0, 0,), ccp(960, 640) ); CHECK_GL_ERROR_DEBUG(); //设置OpenGL点的大小, 默认是正方形
//ccDrawLine參数:绘制位置
//ccPointSize(80);
//ccDrawColor4B(0,0,255,128);//设置颜色
//ccDrawPoint( ccp(size.width/2, size.height/2) ); CHECK_GL_ERROR_DEBUG(); // 画4个点的正方形
CCPoint points[] = { ccp(60,60), ccp(70,70), ccp(60,70), ccp(70,60) };//四个点位置
ccPointSize(80);
ccDrawColor4B(0,255,255,255);
ccDrawPoints( points, 4); CHECK_GL_ERROR_DEBUG(); //在屏中间画一个由10段组成的圆, 与圆中心不连线
//ccDrawCircle參数1:圆心位置。參数2:半径;參数3:角度;參数4:分段数。參数5:是否与圆中心连线
glLineWidth(16);//宽度
ccDrawColor4B(0, 255, 0, 255);//颜色
ccDrawCircle(ccp(size.width/2, size.height/2), 100, 0, 10, false); CHECK_GL_ERROR_DEBUG(); // 在屏中间画一个由50段组成的圆。与圆中心连线
glLineWidth(2);
ccDrawColor4B(0, 255, 255, 255);
ccDrawCircle( ccp(size.width/2, size.height/2), 50, CC_DEGREES_TO_RADIANS(90), 50, true); CHECK_GL_ERROR_DEBUG(); //画点数为5的多边形
//ccDrawPoly參数1:点数组;參数2:点数。參数3:图形是否闭合
ccDrawColor4B(255, 255, 0, 255);
glLineWidth(10);
CCPoint vertices[] = { ccp(0,0), ccp(50,50), ccp(100,50), ccp(100,100), ccp(50,100) };
ccDrawPoly( vertices, 5, false); CHECK_GL_ERROR_DEBUG(); // 画点数为5的闭合多边形, 并填充颜色
//ccDrawSolidPoly參数1:点数组。參数2:点数。參数3:填充颜色
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 ) ); // 画三角形
//ccDrawPoly參数1:点数组。參数2:点数;參数3:图形是否闭合
ccDrawColor4B(255, 0, 255, 255);
glLineWidth(2);
CCPoint vertices2[] = { ccp(130,230), ccp(130,330), ccp(150,300) };
ccDrawPoly( vertices2, 3, true); CHECK_GL_ERROR_DEBUG(); // 画塞尔曲线
//參数1:线起点位置;參数2:线中心点位置。參数3:线终点位置。參数4:线条段数
ccDrawQuadBezier(ccp(0, 640-100),ccp(size.width/2, size.height/2-100),ccp(960, 640-100), 90); CHECK_GL_ERROR_DEBUG(); //画有4个控制点的塞尔曲线
ccDrawCubicBezier(ccp(size.width/2, size.height/2), ccp(size.width/2+100, size.height/2+150), ccp(size.width/2+200, size.height/2-80),ccp(960, 300),100); CHECK_GL_ERROR_DEBUG(); //画黄色斜矩形
CCPoint vertices3[] = {ccp(60,160), ccp(70,190), ccp(100,190), ccp(90,160)};
ccDrawSolidPoly( vertices3, 4, ccc4f(1,1,0,1) ); // 完毕后重置一下绘制状态
glLineWidth(1);
ccDrawColor4B(255,255,255,0);
ccPointSize(1); CHECK_GL_ERROR_DEBUG(); }

 

cocos2d-x 绘制图形的更多相关文章

  1. CSS 魔法系列:纯 CSS 绘制图形(心形、六边形等)

    <CSS 魔法系列>继续给大家带来 CSS 在网页中以及图形绘制中的使用.这篇文章给大家带来的是纯 CSS 绘制五角星.六角形.五边形.六边形.心形等等. 我们的网页因为 CSS 而呈现千 ...

  2. html5 Canvas绘制图形入门详解

    html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...

  3. html5 canvas 笔记一(基本用法与绘制图形)

    <canvas> 元素 <canvas id="tutorial" width="150" height="150"> ...

  4. WPF2D绘制图形方法

    我们先看看效果如何: xaml文件: <Window x:Class="WPF2D绘制图形方法.MainWindow" xmlns="http://schemas. ...

  5. 11-UIKit(Storyboard、View的基本概念、绘制图形、UIBezierPath)

    目录: 1. Storyboard 2. Views 3. View的基本概念介绍 4. 绘制图形 5. UIBezierPath 回到顶部 1. Storyboard 1.1 静态表视图 1)Sec ...

  6. HTML5—canvas绘制图形(1)

    1.canvas基础知识 canvas元素是HTML5中新增的一个重要的元素,专门用来绘制图形,不过canvas本身不具备画图的能力,在页面中放置了canvas元素,就相当于在页面中放置了一块矩形的“ ...

  7. 【canvas学习笔记二】绘制图形

    上一篇我们已经讲述了canvas的基本用法,学会了构建canvas环境.现在我们就来学习绘制一些基本图形. 坐标 canvas的坐标原点在左上角,从左到右X轴坐标增加,从上到下Y轴坐标增加.坐标的一个 ...

  8. HTML5使用Canvas来绘制图形

    一.Canvas标签: 1.HTML5<canvas>元素用于图形的绘制,通过脚本(通常是javascript)来完成. 2.<canvas>标签只是图形容器,必须使用脚本来绘 ...

  9. canvas 绘制图形

    canvas 绘制图形: 注意: canvas 的宽高设置在行内,否则会使画布(canvas)产生扭曲,绘图变形: <!DOCTYPE html> <html lang=" ...

  10. python中的turtle库绘制图形

    1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...

随机推荐

  1. JSJ——java基本概念一

    Java曾以什么优点吸引你走上程序员这条不归路? 友好的语法.面向对象.内存管理和最棒的跨平台可移植性.write-once/run-anywhere 当然,只有我们真正投身入java才发现有bug要 ...

  2. python进程池

    当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiproce ...

  3. JDK的动态代理-----为接口进行代理

    JDK的动态代理是必须掌握的,动态代理的好处就不用我多说了吧 :) 小弟最近在研究mybatis的源码实现,就开始了解mybatis的Mapper代理机制,为什么接口不用实现类也能代理? 好了,废话不 ...

  4. mybatis插件机制

    目录 mybatis插件机制 主要 类/接口 和 方法 mybatis插件机制实现 mybatis插件机制 mybatis的插件机制使用动态代理实现,不了解的朋友请先了解代理模式和动态代理:插件本质是 ...

  5. WORLD 文件格式的保存

    1,.docx 高版本格式. 该格式,高版本可以打开低版本的文件,低版本不一定能打开高版本的文件 2,.doc 兼容模式 高低版本都可以打开该格式的文件 3,   .PDF文件格式   我把WORLD ...

  6. angular 拼接html 事件无效

    主要是要引用$compile方法

  7. 2018-11-27 中文代码示例之Programming in Scala笔记第七八章

    续前文: 中文代码示例之Programming in Scala学习笔记第二三章 中文代码示例之Programming in Scala笔记第四五六章. 同样仅节选有意思的例程部分作演示之用. 源文档 ...

  8. 照葫芦画瓢系列之Java --- Maven的集成和使用

    一.和Eclipse的集成 1.添加Maven 在windows--> preferences中找到maven选项,如下图: 如果没有上图的Name为apache-maven-3.5.2的项,则 ...

  9. Android Studio--gradle:download 过慢甚至超时timeout报错

    问题描述 今天第一次学习安卓,配置环境花了不少时间其他都比较容易的解决了 gradle 因为会从外国的网站下载东西会非常的慢(具体原理我也不清楚),所以最好让下载地址变成国内的 解决方案(最后有升级方 ...

  10. Ubuntu16.04下postgresql-10

      这里使用源码安装的方式进行: Linux版本:ubuntu16.04 PostgresSQL版本:postgresql-10.3 在PostgreSQL官网下载地址:https://www.pos ...