cocos2d-x 绘制图形
转载请注明出处: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 绘制图形的更多相关文章
- CSS 魔法系列:纯 CSS 绘制图形(心形、六边形等)
<CSS 魔法系列>继续给大家带来 CSS 在网页中以及图形绘制中的使用.这篇文章给大家带来的是纯 CSS 绘制五角星.六角形.五边形.六边形.心形等等. 我们的网页因为 CSS 而呈现千 ...
- html5 Canvas绘制图形入门详解
html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...
- html5 canvas 笔记一(基本用法与绘制图形)
<canvas> 元素 <canvas id="tutorial" width="150" height="150"> ...
- WPF2D绘制图形方法
我们先看看效果如何: xaml文件: <Window x:Class="WPF2D绘制图形方法.MainWindow" xmlns="http://schemas. ...
- 11-UIKit(Storyboard、View的基本概念、绘制图形、UIBezierPath)
目录: 1. Storyboard 2. Views 3. View的基本概念介绍 4. 绘制图形 5. UIBezierPath 回到顶部 1. Storyboard 1.1 静态表视图 1)Sec ...
- HTML5—canvas绘制图形(1)
1.canvas基础知识 canvas元素是HTML5中新增的一个重要的元素,专门用来绘制图形,不过canvas本身不具备画图的能力,在页面中放置了canvas元素,就相当于在页面中放置了一块矩形的“ ...
- 【canvas学习笔记二】绘制图形
上一篇我们已经讲述了canvas的基本用法,学会了构建canvas环境.现在我们就来学习绘制一些基本图形. 坐标 canvas的坐标原点在左上角,从左到右X轴坐标增加,从上到下Y轴坐标增加.坐标的一个 ...
- HTML5使用Canvas来绘制图形
一.Canvas标签: 1.HTML5<canvas>元素用于图形的绘制,通过脚本(通常是javascript)来完成. 2.<canvas>标签只是图形容器,必须使用脚本来绘 ...
- canvas 绘制图形
canvas 绘制图形: 注意: canvas 的宽高设置在行内,否则会使画布(canvas)产生扭曲,绘图变形: <!DOCTYPE html> <html lang=" ...
- python中的turtle库绘制图形
1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...
随机推荐
- [android] 开启新的activity获取他的返回值
应用场景:打开一个新的activity,在这个activity上获取数据,返回给打开它的界面 短信发送时,可以直接选择系统联系人 界面布局是一个线性布局,里面右侧选择联系人在EditText的右上,因 ...
- 【Java每日一题】20170221
20170220问题解析请点击今日问题下方的“[Java每日一题]20170221”查看(问题解析在公众号首发,公众号ID:weknow619) package Feb2017; public cla ...
- 雪碧图和如何实现浏览器中title的小图标
background-position 雪碧图 我们的html和css中有三个属性可以向服务器发送请求 ser href url 2.overflow (1) 值hidden 超出就隐藏 (2)值sc ...
- lnmp环境切换php版本,并安装相应redis扩展
ubuntu+nginx+mysql+php+redis,其中php装两个版本,php7和php56 1.让nginx支持不同站点可以选择不同的php版本 1>创建fastcgi.conf文件 ...
- 16-pymysql模块的使用
[转]16-pymysql模块的使用 本节重点: pymysql的下载和使用 execute()之sql注入 增.删.改:conn.commit() 查:fetchone.fetchmany.fetc ...
- IDEA 代码格式化,快捷键
一键格式化代碼: Ctrl+Alt+L 全局搜索替换:ctrl+shift+r 强大的搜索功能,shift+shift (无论您想要搜啥都能找到) ctrl+shift+R==搜索类 CTRL+N ...
- Linux网络设备驱动的实现
结论: 1.对一个设备驱动而言,主要从两个方面进行着手,一个是控制流,一个是数据流. 控制流就是如何控制网络设备,数据流则说的是报文的收发流程. 2.网络设备可以是Linux服务器的网卡,也可以是嵌入 ...
- VRRP技术总结和配置实践
1.VRRP作为网关可靠性的常用方法,基本思路是,两台路由器组成一个虚拟路由器,通过VRRP协议对内网呈现一个虚拟的网关ip, 以便让局域网内部的终端通过这个虚拟网关对外进行通信. 2.VRRP的最简 ...
- Android项目实战(三十三):AS下获取获取依赖三方的jar文件、aar 转 jar
使用 Android studio 开发项目中,有几种引用三方代码的方式:jar 包 ,类库 ,gradle.build 的compile依赖. 大家会发现github上不少的项目只提供compile ...
- 杨学明老师推出全新课程--《敏捷开发&IPD和敏捷开发结合的实践》
课时:13小时(2天) 敏捷开发&IPD和敏捷开发结合的实践 讲 师:杨学明 [课程背景] 集成产品开发(IPD).集成能力成熟度模型(CMMI).敏捷开发(Agile Developmen ...