COCOS学习笔记--自定义绘制

最近购买了曹世博老师关于cocos引擎的学习教程,打算重新再系统梳理一下cocos相关的知识结构,学习之余把自己的一些收获和理解总结记录下来,方便日后自己回顾并同时希望本笔记可以对各位cocos学习者有所帮助,相关技术上博主理解如有偏颇,还请指正:视频地址:http://edu.csdn.net/course/detail/1342/20984?auto_start=1 Cocos
摘要由CSDN通过智能技术生成

Cocos2dx3.0版本后渲染引入了OpenGlES3.0相关特性,使用了DrawNode类来进行绘制,那么我们就来看看DrawNode类具体是如何绘制点线面的

我们在DrawNode.cpp中可以看到DrawNode类提供了画点drawPoint()、画线drawLine()、画矩形drawRect()、画多边形drawPoly()、画矩形面drawSolidRect()、画多边形面drawSolidPoly()等等方法。

接下来我们以drawLine()这个方法为例,看下cocos到底是如何绘制图形的:

void DrawNode::drawLine(const Vec2 &origin, const Vec2 &destination, const Color4F &color)
{
    ensureCapacityGLLine(2);
    
    V2F_C4B_T2F *point = (V2F_C4B_T2F*)(_bufferGLLine + _bufferCountGLLine);
    
    V2F_C4B_T2F a = {origin, Color4B(color), Tex2F(0.0, 0.0)};
    V2F_C4B_T2F b = {destination, Color4B(color), Tex2F(0.0, 0.0)};
    
    *point = a;
    *(point+1) = b;
    
    _bufferCountGLLine += 2;
    _dirtyGLLine = true;
}

该方法参数为终点、起点坐标、颜色值。

首先把参数传来的值赋给了V2F_C4B_T2F类型的变量,这个V2F_C4B_T2F是什么类型呢?我们看看:我们在ccTypes.h文件中可以找到对V2F_C4B_T2F的定义:

struct V2F_C4B_T2F
{
    /// vertices (2F)
    Vec2       vertices;
    /// colors (4B)
    Color4B        colors;
    /// tex coords (2F)
    Tex2F          texCoords;
};

原来V2F_C4B_T2F是一个结构体,里面点坐标、颜色值还有个Tex2F类型的成员。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值