您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x节点(ccTypes.h)API

2013-12-05 16:56 162 查看
本文来自http://blog.csdn.net/runaying ,引用必须注明出处!


cocos2d-x节点(ccTypes.h)API

温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记

字体属性、texture属性、RGB组成......
///cocos2d-x-3.0alpha0/cocos2dx/include
//字体属性、texture属性、RGB组成......

#ifndef __CCTYPES_H__
#define __CCTYPES_H__

#include <string>
#include "cocoa/CCGeometry.h"
#include "CCGL.h"

NS_CC_BEGIN

/** RGB颜色组成的字节3字节
@since v3.0
*/
struct Color3B
{
Color3B(): r(0), g(0), b(0) {}

Color3B(GLubyte _r, GLubyte _g, GLubyte _b)
: r(_r)
, g(_g)
, b(_b)
{}

bool equals(const Color3B &other)
{
return (this->r == other.r &&
this->g == other.g &&
this->b == other.b);
}

GLubyte r;
GLubyte g;
GLubyte b;

const static Color3B WHITE;
const static Color3B YELLOW;
const static Color3B BLUE;
const static Color3B GREEN;
const static Color3B RED;
const static Color3B MAGENTA;
const static Color3B BLACK;
const static Color3B ORANGE;
const static Color3B GRAY;
};

struct Color4F;

/** 组成 RGBA 颜色(4 字节)
@since v3.0
*/
struct Color4B
{
Color4B(GLubyte _r, GLubyte _g, GLubyte _b, GLubyte _a)
: r(_r)
, g(_g)
, b(_b)
, a(_a)
{}

Color4B(): r(0), g(0), b(0), a(0) {}

// 此功能应该使用 Color4F, so implement it in .cpp file.
explicit Color4B(const Color4F &color4F);

GLubyte r;
GLubyte g;
GLubyte b;
GLubyte a;

const static Color4B WHITE;
const static Color4B YELLOW;
const static Color4B BLUE;
const static Color4B GREEN;
const static Color4B RED;
const static Color4B MAGENTA;
const static Color4B BLACK;
const static Color4B ORANGE;
const static Color4B GRAY;
};

/** RGBA color 由 4 floats 组成
@since v3.0
*/
struct Color4F
{
Color4F(float _r, float _g, float _b, float _a)
: r(_r)
, g(_g)
, b(_b)
, a(_a)
{}

explicit Color4F(const Color3B &color3B)
: r(color3B.r / 255.0f)
, g(color3B.g / 255.0f)
, b(color3B.b / 255.0f)
, a(1.f)
{}

explicit Color4F(const Color4B &color4B)
: r(color4B.r / 255.0f)
, g(color4B.g / 255.0f)
, b(color4B.b / 255.0f)
, a(color4B.a / 255.0f)
{}

Color4F(): r(0.f), g(0.f), b(0.f), a(0.f) {}

bool equals(const Color4F &other)
{
return (this->r == other.r &&
this->g == other.g &&
this->b == other.b &&
this->a == other.a);
}

GLfloat r;
GLfloat g;
GLfloat b;
GLfloat a;

const static Color4F WHITE;
const static Color4F YELLOW;
const static Color4F BLUE;
const static Color4F GREEN;
const static Color4F RED;
const static Color4F MAGENTA;
const static Color4F BLACK;
const static Color4F ORANGE;
const static Color4F GRAY;
};

/** A vertex 由 2 floats 组成: x, y
@since v3.0
*/
struct Vertex2F
{
Vertex2F(float _x, float _y) :x(_x), y(_y) {}

Vertex2F(): x(0.f), y(0.f) {}

GLfloat x;
GLfloat y;
};

/** A vertex 由 2 floats 组成: x, y
@since v3.0
*/
struct Vertex3F
{
Vertex3F(float _x, float _y, float _z)
: x(_x)
, y(_y)
, z(_z)
{}

Vertex3F(): x(0.f), y(0.f), z(0.f) {}

GLfloat x;
GLfloat y;
GLfloat z;
};

/** A texcoord(textureCoord 纹理坐标) composed(组成) of 2 floats: u, y
@since v3.0
*/
struct Tex2F {
Tex2F(float _u, float _v): u(_u), v(_v) {}

Tex2F(): u(0.f), v(0.f) {}

GLfloat u;
GLfloat v;
};

//! Point Sprite component(组件)
struct PointSprite
{
Vertex2F   pos;        // 8 bytes
Color4B    color;      // 4 bytes
GLfloat    size;       // 4 bytes
};

//!    A 2D Quad. 4 * 2 floats      //四
struct Quad2
{
Vertex2F        tl;
Vertex2F        tr;
Vertex2F        bl;
Vertex2F        br;
};

//!    A 3D Quad. 4 * 3 floats      //四
struct Quad3 {
Vertex3F        bl;
Vertex3F        br;
Vertex3F        tl;
Vertex3F        tr;
};
//备注 :texcoord 是纹理坐标,在后续的Pixel shader中会用到用来读取纹理颜色
//! 一个顶点, a tex coord point(纹理坐标) and a color 4B   //顶点
struct V2F_C4B_T2F
{
//! vertices (2F)               //顶点
Vertex2F       vertices;
//! colors (4B)
Color4B        colors;
//! tex coords (2F)
Tex2F          texCoords;
};

//! 一个顶点, a tex coord point(纹理坐标) and a color 4F       //顶点
struct V2F_C4F_T2F
{
//! vertices (2F)       //顶点
Vertex2F       vertices;
//! colors (4F)
Color4F        colors;
//! tex coords (2F)
Tex2F          texCoords;
};

//! 一个顶点, a tex coord point(纹理坐标) and a color 4B   //顶点
struct V3F_C4B_T2F
{
//! vertices (3F)               //顶点
Vertex3F     vertices;            // 12 bytes

//! colors (4B)
Color4B      colors;              // 4 bytes

// tex coords (2F)
Tex2F        texCoords;           // 8 bytes
};

//! A Triangle of V2F_C4B_T2F           //三角形
struct V2F_C4B_T2F_Triangle
{
//! Point A
V2F_C4B_T2F a;
//! Point B
V2F_C4B_T2F b;
//! Point B
V2F_C4B_T2F c;
};

//! A Quad of V2F_C4B_T2F
struct V2F_C4B_T2F_Quad
{
//! bottom left             //下
V2F_C4B_T2F    bl;
//! bottom right            //下
V2F_C4B_T2F    br;
//! top left
V2F_C4B_T2F    tl;
//! top right
V2F_C4B_T2F    tr;
};

//! 4 Vertex3FTex2FColor4B
struct V3F_C4B_T2F_Quad
{
//! top left
V3F_C4B_T2F    tl;
//! bottom left           //下
V3F_C4B_T2F    bl;
//! top right
V3F_C4B_T2F    tr;
//! bottom right
V3F_C4B_T2F    br;
};

//! 4 Vertex2FTex2FColor4F Quad
struct V2F_C4F_T2F_Quad
{
//! bottom left           //下
V2F_C4F_T2F    bl;
//! bottom right           //下
V2F_C4F_T2F    br;
//! top left
V2F_C4F_T2F    tl;
//! top right
V2F_C4F_T2F    tr;
};

//!  textures 使用的混合函数
struct BlendFunc
{
//! source blend function           //源混合功能
GLenum src;
//! destination blend function      //目标混合功能
GLenum dst;

//! Blending(混合) disabled. Uses {GL_ONE, GL_ZERO}
const static BlendFunc DISABLE;
//! Blending(混合) enabled for textures with Alpha premultiplied(预乘). Uses {GL_ONE, GL_ONE_MINUS_SRC_ALPHA}
const static BlendFunc ALPHA_PREMULTIPLIED;
//! Blending(混合) enabled for textures with Alpha NON(非) premultiplied(预乘). Uses {GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA}
const static BlendFunc ALPHA_NON_PREMULTIPLIED;
//! Enables Additive(附加) blending(混合). Uses {GL_SRC_ALPHA, GL_ONE}
const static BlendFunc ADDITIVE;
};

// Label::VAlignment        //对齐
// Label::HAlignment

// XXX: 如果这些枚举被编辑, and/or 重新排序, 都会更新 Texture2D.m
//! Vertical text alignment type                //垂直
enum class TextVAlignment
{
TOP,
CENTER,
BOTTOM,
};

// XXX: 如果这些枚举被编辑, and/or 重新排序, 都会更新 Texture2D.m
//! Horizontal text alignment type              //水平
enum class TextHAlignment
{
LEFT,
CENTER,
RIGHT,
};

// animation 中的粒子系统的类型

// texture coordinates(坐标)for a quad        //四
struct T2F_Quad
{
//! bottom left             //下
Tex2F    bl;
//! bottom right            //下
Tex2F    br;
//! top left
Tex2F    tl;
//! top right
Tex2F    tr;
};

// ParticleSystemQuad 动画的 延迟、texture 坐标、持有尺寸(以像素为单位)
struct AnimationFrameData
{
T2F_Quad texCoords;
float delay;
Size size;
};

/**
定义的字体属性类型 (i.e. font name, size, stroke(笔画样式)or 阴影)
*/

// 阴影属性
struct FontShadow
{
public:

// 默认情况下,不启用阴影
FontShadow()
: _shadowEnabled(false)
, _shadowBlur(0)
, _shadowOpacity(0)
{}

// true 启用阴影
bool   _shadowEnabled;
// 阴影偏移(x,y)
Size   _shadowOffset;
// 模糊阴影
float  _shadowBlur;
// 阴影透明度
float  _shadowOpacity;
};

// stroke(描边)属性
struct FontStroke
{
public:

// 默认情况下禁止 stroke
FontStroke()
: _strokeEnabled(false)
, _strokeColor(Color3B::BLACK)
, _strokeSize(0)
{}

// true if stroke enabled
bool      _strokeEnabled;
// stroke color
Color3B   _strokeColor;
// stroke size
float     _strokeSize;

};

// font attributes
struct FontDefinition
{
public:
/**
* @js NA
* @lua NA
*/
FontDefinition()
: _fontSize(0)
, _alignment(TextHAlignment::CENTER)
, _vertAlignment(TextVAlignment::TOP)
, _dimensions(Size::ZERO)
, _fontFillColor(Color3B::WHITE)
{}

// font name
std::string           _fontName;
// font size
int                   _fontSize;
// horizontal alignment                 //水平对齐
TextHAlignment        _alignment;
// vertical alignment                      //垂直对齐
TextVAlignment _vertAlignment;
// renering(渲染) box
Size                  _dimensions;
// font color
Color3B               _fontFillColor;
// font shadow
FontShadow            _shadow;
// font stroke
FontStroke            _stroke;

};

/**
@brief 设备的加速的报告,每个单元轴 g-force(力的大小)
*/
class Acceleration
{
public:
double x;
double y;
double z;

double timestamp;

Acceleration(): x(0), y(0), z(0), timestamp(0) {}
};

NS_CC_END

#endif //__CCTYPES_H__
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: