cocos2dx
文章平均质量分 58
Crazy_Number
成为强大的程序员_
展开
-
coco2dx内存管理(源码版本:cocos2d-x-2.2.3)
模型入口autorelease();在这个函数里边会调用位于栈上第一个CCAutoReleasePool对象进行addobject操作。addobject操作里边首先会获取当前栈顶的CCAutoReleasePool对象,如果没有对象那么会执行push操作,也即压入一个CCAutoReleasePool对象,最后使用CCAutoReleasePool对象addobject添加需要autorelea原创 2014-07-22 21:33:03 · 1571 阅读 · 0 评论 -
cocos2dx启动流程分析(源码版本:cocos2d-x-2.2.3)
想要了解cocos2dx的启动流程可以从hellocpp示例项目的源码看起,因为这是cocos的入门项目,就如同我们以前学习第一个程序的hello world一样。在hellocpp工程中,win32目录下只有一个main文件,而Classes目录下则是包含有从cocos2dx引擎继承的类它们是:CCAPPlication和CCLayer,在这个目录下还有一个包含有宏定义的头文件。原创 2014-07-17 21:47:01 · 3356 阅读 · 0 评论 -
探cocos2dx各类输入touch、keypad、IME,源码版本(2.2.3)
记得刚开始工作的时候对cocos2dx的输入看得云里雾里,而这几天要写一些博文总结一下过去一年所学到东西,想了想借此时机把它总结一下。第一次接触手机开发对移动平台下的消息比较陌生,但是将手机上的各类事件与window的消息做一个对比的话,会比较便于理解。移动设备的touch事件相当于window平台上的鼠标事件,移动设备的keypad只有回退按钮和菜单按钮,移动设备ime输入与window原创 2014-08-29 20:47:59 · 1399 阅读 · 0 评论 -
探cocos2dx文本显示实现(label_nodes),源码版本(2.2.3)
追本溯源的话,一个文本的显示在计算上也就是点阵图,而一行文本也就是一系列点阵图按照顺序排序显示而成的。早期的计算机图形实现的图案可以说都是一个个几何形状组合而成,到了近代计算机图形技术的发展,加入了纹理技术,使得图形可以表现得越来越丰富。比如说类似于计算机上各种各样的字体,使用几何图形组合的方案已经很难达到目标的效果了。在cocos2dx里边,文本显示的实现也是基于纹理技术的,当然出于性能上的考量原创 2014-08-29 15:59:39 · 1081 阅读 · 0 评论 -
探cocos2dx纹理模块(textures),源码版本(2.2.3)
模块相关类(模块名texture):CCTexture2D:在cocos2dx里边所有的2d纹理都由这个类来表示。它提供了多种方式来构建一个cocos2dx的纹理对象,比如说通过多种格式的图像文件,甚至是buffer,创建方式调用了CCImage类对象。除了创建方式,还有设置纹理参数的接口。在opengl中,设置纹理过滤函数参数的意义在于从纹理空间映射到帧缓冲图像空间时所需要做的操原创 2014-08-17 21:28:01 · 1607 阅读 · 0 评论 -
最近开发遇到的cocos2dx问题集(版本2.2.3,studio版本1.6.0.0)
1:ui widget无法使用 透明度 渐变的动画(action),因为没有继承自rgba协议。在设置shader的时候也需要设置颜色,否则就有可能会变黑,因为在片段着色器里边乘上这个因子了。ui button设置名字的后缀是button否则无法触发按钮多态。原因未知。ui button设置禁用态后按钮贴图没变。因为没有调用。换行和字体颜色设置的问题我觉得最好还是使用uil原创 2014-09-11 12:56:34 · 1882 阅读 · 0 评论 -
探cocos2dx对游戏精灵(sprite_nodes)的实现。(源码版本2.2.3)
cocos2dx负责精灵功能相关代码在sprite_node里边,在这个文件夹里边有几个文件,主要涉及有几个类(所有名字以node结尾的文件模块均为渲染结点):CCAnimation:这是一个容器类,保存CCAnimationFrame类对象(也即动画帧),在使用action播放动画的时候需要用到这个对象。CCAnimationCache:动画类的cache,相当于原创 2014-08-17 12:29:54 · 1762 阅读 · 0 评论 -
探cocos2dx UI引擎(粗略阅读)(源码版本2.2.3)
widgetwidget作为所有ui的父节点,定义通用接口便于复用。通用接口相关的如:子ui相关,touch消息相关,位置信息相关等等。buttonbutton一般都有3种状态,分别为一般态,点击态,不可点击态。button类里边这三个态分别使用三个ccsprite结点来实现(虽然声明的类型是ccnode,但实际创建的是ccsprite,如果允许使用九宫格的话将创建scale9原创 2014-09-11 13:25:36 · 1272 阅读 · 0 评论 -
探cocos2dx粒子特效模块(particle_nodes),源码版本(2.2.3)
整体来说,粒子特效模块的实现还是比较简单的,主要涉及3个类,分别封装了不同的功能。粒子特效的功能实现可以简单的分解成三个过程。坐标计算,更新坐标,渲染。模块相关类:CCParticleBatchNode,粒子特效渲染在这个类里边完成。CCParticleSystem,粒子特效坐标计算在这个类完成,它里边包含有粒子特效2个模式的所有参数。CCParticleSystemQuad,原创 2014-08-20 20:29:10 · 1333 阅读 · 0 评论 -
探cocos2dx特效实现(effects),源码版本(2.2.3)
cocos2dx实现的特效非常多,粗略算了下差不多有22种,如果需要查看具体表现效果的话可以运行TestCpp的effects test。cocos2dx特效渲染使用opengl的fbo技术。fbo全称frame buffer object,如vbo一样,是opengl的一种优化渲染技术,用于提高渲染性能,不同于vbo用于顶点属性,当启用fbo之后的渲染命令会作用于纹理、RBO中,原创 2014-08-28 13:27:30 · 1880 阅读 · 0 评论 -
探cocos2dx裁剪结点、拖尾效果、进度效果、渲染纹理实现(misc_nodes),源码版本(2.2.3)
模块包含4个功能,可以实现任意形状裁剪的CCClipingNode、具有拖尾效果的CCMotionStreak、具有2种进度展示效果的CCProgressTimer、能够渲染到纹理而不是帧缓存的CCRenderTexture。具体效果请参考TestCpp:motionstreak test,clipping test,progress test。相关类:CCClipingNode:原创 2014-08-30 16:16:09 · 2944 阅读 · 0 评论