cocos开发
davidsu33
这个作者很懒,什么都没留下…
展开
-
cocos显示原理
cocos通过设置帧大小来显示每帧的场景,对于实际显示在视口中的视野大小可以通过pEGLView->setDesignResolutionSize(400, 200, kResolutionFixedWidth);来进行设置,对于不同的显示解析有如下选择:kResolutionExactFit 根据帧大小和分辨大小计算出比例尺,若没有全屏显示,则会对场景进行相应的拉伸再显示。kR原创 2013-07-17 21:05:21 · 1234 阅读 · 0 评论 -
GLSL 绘制入门
// GLSL01.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;static const int g_timer_id = 0;static const int g_time_per_frame = 16;//ms#def原创 2013-12-14 17:40:56 · 1571 阅读 · 0 评论 -
cocos2dx学习中所涉及到的工具和需要准备的基础知识
cocos2dx学习中所涉及到的工具和需要准备的基础知识原创 2013-12-06 10:06:39 · 1162 阅读 · 2 评论 -
CCSpriteBatchNode的特点和使用方法
CCSpriteBatchNode是一个批处理绘制精灵节点,其特点是共享同一个纹理,CCSpriteBatchNode最大的优点就是将所有同属性的纹理进行一次绘制,CCSpriteBatchNode并不能添加CCLabel之类(继承自CCNode的节点),仅处理共享纹理的精灵。另外一点特别要注意的是CCSpriteBatchNode通过addSpriteWithoutQuad增加子节点的方式跟其他原创 2013-12-04 20:15:26 · 3352 阅读 · 0 评论 -
Cocos2DX之CCParallaxNode
如果我们的游戏中有地图的移动,就无法避免滚动视差。也就是说离实现越远的地方移动速度越慢,这样才可以形成景深不一样的视觉效果。 如果使用cocos2d,那我们可以很简单的实现。因为已经存在了这样一个“容器”:CCParallaxNode。对的,它肯定继承于CCNode,加入到CCParallaxNode的元素都会有一个parallaxRatio,用来决定移动的快慢。1:构造CCP转载 2013-12-04 15:10:22 · 1345 阅读 · 0 评论 -
CCTexture2D、CCTexturePVR、CCTextureCache、CCTextureAtlas
当一张图片被加载到内存后,它是以纹理的形式存在的。纹理是什么东西呢?纹理就是一块内存,这块内存中存放的是按照指定的像素格式填充的图片像素信息。它被最终作为三角面着色所依据的数据源。 我们来看一下cocos2d-x中的libcocos2d库,其下有许多目录,找到textures展开,可以看到有CCTexture2D,CCTextureAtlas,CCTextureCache,CCTextu转载 2013-12-09 11:13:58 · 1105 阅读 · 0 评论 -
cocos2dx之CCPhysicsSprite
CCPhysicsSprite是基于物理引擎的Sprite,其物理引擎有两种一种是基于BOX2D,一种是基于Chipmunk的,不管是那种,我们所需要掌握的重点有两个,一个是基于物理模型坐标系和Cocos坐标系的比例关系m_fPTMRatio,另外一个是物理模型和cocos的sprite对象的同步。下面请看一下同步过程:1.在设置cocos坐标的时候同步物理坐标void CCPhysics原创 2013-12-02 08:57:36 · 1952 阅读 · 0 评论 -
CoCos中ccTMXTileFlags_标志位说明
ccTMXTileFlags_是用于对TMX格式地图中单个图元如何显示的标志位。分别有如下选项:kCCTMXTileHorizontalFlag 水平对齐kCCTMXTileVerticalFlag 垂直对齐kCCTMXTileDiagonalFlag 对角线对齐(我理解是旋转了90度对齐)kCCFlipedAll 是前三种的组合原创 2013-12-08 10:18:58 · 1366 阅读 · 0 评论 -
cocos节点绘制的原理
cocos的节点类CCNode中有如下接口visit()和draw(),其中visit()是外部用来调用绘制显示的,而draw()是用来实现具体绘制过程的。下面我们来分析CCNode的绘制过程,这里我们使用两个方面的例子来说明:1.通过场景的绘制来分析。2.通过CCRenderTexture的绘制来分析。1.CCScene转载 2013-08-17 21:35:39 · 1263 阅读 · 0 评论 -
关于CCTexure2D使用opengl实现绘制的原理分析
CCNode中在指定的位置中绘制图元的如下示例代码:cocos2D-x中CCNode的画图函数void CCTexture2D::drawAtPoint(const CCPoint& point) { GLfloat coordinates[] = { 0.0f, m_fMaxT, m_fMaxS,m_fMaxT, 0.0f, 0.0f, m_fMaxS,0.0原创 2013-08-18 19:55:00 · 940 阅读 · 0 评论 -
CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析
CCTexture2D 是对OpenGL中二位纹理的类包封,可以通过图片和内存数据来生成对应的二维纹理,实际的纹理图片可能会比生成的纹理图片要小,生成的纹理图片的大小为不小于其大小的2的N次方。还需要注意的是生成的纹理内容与纹理图片是倒着的。所以在纹理对应坐标的时候咱们需要将Y轴倒过来,否则纹理图片的对应会出错。CCSpriteBatchNode是对CCSprite节点的批处理,可以对原创 2013-08-12 21:31:44 · 1396 阅读 · 0 评论 -
CCLabelTTF和CCLabelAtlas的显示区别
CCLabelTTF和CCLabelAtlas的区别如下:1.CCLabelAtlas是从CCAtlasNode和CCLabelProtocal派生,而CCAtlasNode又是从CCNodeRGBA和CCTextureProtocal 派生。而CCLabelTTF是直接从CCSprite和CCLabelProtocal派生。2.CCLabelTTF是将要显示的字符串生成一张位图,原创 2013-08-11 20:57:08 · 865 阅读 · 0 评论 -
cocos2dx 锚点
cocos2dx中经常会用到节点的旋转,一旦涉及到物体的旋转则会涉及到旋转所相对的中心点的位置,对于CCNode而言,其提供了设置锚点的接口,用来设置锚点的相对位置。见CCNode源代码中CCNode.cpp/// anchorPoint getterconst CCPoint& CCNode::getAnchorPoint(){ return m_obAnchorPoint;原创 2013-08-09 10:47:04 · 2375 阅读 · 0 评论 -
cocos RGBA的样式层叠
对于CoCos中的节点默认是会相互覆盖的,但是有时我们也会用到层叠颜色和透明度的时候,这个时候我们就需要借助CCRGBAProtocol中提供的接口来进行实现,可以看出CCSPrite和CCLayer均实现了这个接口,这里我觉得需要大家在开发中注意的问题是该属性是需要递归设置才能体现其价值的。这里我们来看一段CCRGBAProtocal的源代码: /** * whet原创 2013-08-08 21:24:27 · 2486 阅读 · 0 评论 -
cocos简单的3d渲染
文/Cocos2d-X社区版主dr_watson内容重点: Hello World 3D, 简单的3D 渲染 + MD2 模型English version 地址点这里 cocos2d-x 是一个2D 遊戏引擎, 当然主要是拿来写2D遊戏, 但有时候我们会想加些简单的3D 物件做效果或一些特殊的用途, 那该怎麽办呢?OpenGL ES 2.0 开始, 一切的渲染操作转载 2013-08-19 19:50:29 · 1357 阅读 · 0 评论 -
CoCos2DX的文件工具集(FileUtils)
cocos2dx中的文件工具集是使用的CCFileUtils,首先我简单说下这个类的具体功能,这个类提供如下功能:1.基于资源目录(可以是很多个,但是有先后顺序)文件的查找,根据查找目录的目录列表来进行查找,如果同样文件名存在多个,则会根据资源目录的优先级来进行返回。virtual void setSearchPaths(const std::vector& searchPaths);原创 2013-12-21 12:14:30 · 2455 阅读 · 0 评论