理解专题提供理解的最新资讯内容,帮你更好的了解理解。
从cocos的CCNode.h的可以看出Node是继承与Ref,首先我们先看CCRef.h文件,如下: //CCRef.h #include "base/CCPlatformMacros.h" #include "base/ccConfig.h" #define CC_USE_MEM_LEAK_DETECTION 0 NS_CC_BEGIN /**  * @addtogroup base_node
锚点的定义 锚点是指节点在进行形状变换、位置变动时依据的基准点。可以想象为钉在墙上用于固定纸张的小图钉,或者公告栏上用于固定纸张用的围棋状的小磁粒。当对某个节点调用setPosition时,cocos2d-x即会将其锚点移动到相应位置;当对节点进行rotate操作时,节点也是以锚点所在位置为轴心进行旋转的。具体的定义看CCNode.h中的setAnchorPoint说明: * anchorPoin
c++ 11 基础 :     std::function         类模版 std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标进行存储、复制、和调用操作,这些目标包括函数、lambda表达式、绑定表达式、以及其它函数对象等。 用法示例: ①保存自由函数 ? 1 2 3 4 5 6 7 8 void  printA( int  a)
一开始对autorelease的“自动释放”的印象总是挥之不去。总是往java那样的完全自动释放那方面靠,于是第一感觉就错了。 以下仅针对 cocos2dx分析。 前言: 三种情况,引出问题 new出来的对象需要释放,而释放时,如果有其他人引用了这个对象,再次使用这个对象时,则会导致无效指针报错。 于是有了引用计数的施放管理机制。 对于一个返回对象指针的方法。你若不看文档不看内部代码,你无法知道返
  最近在读《我所理解的cocos2dx》一书,感觉挺不错的,推荐一下,以下理解有不少地方受书中内容启发。 这里只写我自己理解的部分,基础部分如果有不懂的,请参考cocos2dx官方文档,写得也很详细。cocos2dx官方文档 设计分辨率与缩放策略   cocos2dx 通过设置设计分辨率来支持多屏幕分辨率适配,引擎底层会根据当前实际的屏幕分辨率通过相应的缩放策略处理设计分辨率的缩放。 /
初学者可能会搞不清楚什么时候用create,什么时候用new 我的理解是new是创建出一个新的对象,而create是原对象下的一个方法,具体什么时候用哪个,就看你的具体需求了。
打算在HelloWord中要添加一个精灵随鼠标拖动的功能。首先在HelloWord.h文件中加入如下代码:        //在这里我们定义一个精灵指针。        CCSprite*   m_pSprite;        首先,编译的时候,VS编译不通过,查看编译信息,如下所示:        是说在*前,缺少“;”,首先怀疑是CCSprite没有其定义文件,打开cocos2d.h文件,我
关于引擎内存管理的细节,网上有大量的详解,这里概括一下: cocos2d-x 的世界是基于 CCObject 类构建的,所以内存管理的本质就是管理一个个 CCObject。 //CCObject 内部维护着一个引用计数,引用计数为 0 就自动释放 unsigned int m_uReference; //管理内存的实质就是管理这些 “引用计数” 了,使用 retain 和 release 方法对引
Cocos2d-x :什么是锚点?(简单点说:锚点就是图片的原点) 将一个节点添加到父节点里面时,需要设置其在父节点上的位置,本质上是设置节点的锚点在父节点坐标系上的位置。 anchor point 究竟是怎么回事? 之所以造成不容易理解的是因为我们平时看待一个图片是 以图片的中心点 这一个维度来决定图片的位置的。而在cocos2d中决定一个 图片的位置是由两个维度 一个是 position  另
最近研究quick-cocos2dx的热更新机制,看到它主要是通过AssetsManagerEx来实现热更新,而网上大多数介绍的AssetsManager类已经在quick-cocos2dx3.3中被禁用了,所以写一下对AssetsManagerEx的认识 1.热更新基本原理 这里先说一下热更新的基本原理 1)不能更新主程序,只能更新资源、lua等文件 c++生成的主程序如果变化只能通过下载升级包
         如果你想写一个 Java 程序,观察某对象什么时候会被垃圾收集的执行绪清除,你必须要用一个 reference 记住此对象,以便随时观察,但是却因此造成此对象的 reference 数目一直无法为零, 使得对象无法被清除。不过,现在有了 Weak Reference 之后,这就可以迎刃而解了。如果你希望能随时取得某对象的信息,但又不想影响此对象的垃圾收集,那么你应该用 Weak
Objective C内存管理进阶(二):理解autorelease: http://www.cnblogs.com/MobileDevelop/archive/2010/07/19/1779138.html 看了上面博客中对autorelease的见解,对autorelease有了更深入的了解。但是还不是很理解,于是又看了代码。一开始对autorelease的“自动释放”的印象总是挥之不去。总是
目录(?)[-] 三种模式 kResolutionUnKnown 认识 FrameSize kResolutionExactFit and kResolutionShowAll 认识 WinSize kResolutionNoBorder 了解 VisibleSize 与 VisibleOrigin kResolutionLeafsoar 开始基于 LsSize 的游戏设计
对Layer的理解 /////cocos2d-x-3.0alpha0/extensions/CocoStudio/GUI/System // 获取 UIInputManager,添加/移除 widget ,设置 UILayer 的可见 性 #ifndef __UILAYER_H__ #define __UILAYER_H__ #include "cocos2d.h" #include "Ex
Cocos2d-x坐标系初解: 首先我们先了解一下Cocos2d-x世界中的几种坐标类型:               屏幕坐标系:原点在左上角,X轴向右,Y轴向下。               GL坐标系:原点在左下角,X轴向右,Y轴向上。               世界坐标系:指相对于整个屏幕的坐标系,480*320为例,(0,0)就是屏幕的左下角,(320,480)就是屏幕的右上角。  
前言: 三种情况,引出问题 new出来的对象需要释放,而释放时,如果有其他人引用了这个对象,再次使用这个对象时,则会导致无效指针报错。 于是有了引用计数的施放管理机制。 对于一个返回对象指针的方法。你若不看文档不看内部代码,你无法知道返回的这个指针需不需要你来释放。同样的对于将一个指针作为参数给一个方法后,你为犹豫我能不能施放这个指针。因为你不知道这个方法内部会不会将你的指针施放。 于是有了谁拥有
setCategoryBitmask(int bitmask),定义当前刚体的掩码值为bitmask setCollisionBitmask(int bitmask),允许和掩码值为bitmask发生碰撞 setContactTestBitmask(int bitmask),在和掩码值为bitmask的刚体碰撞时通知我
该对象只能包含基于CCSprite的对象,并且该要求适用于一切子孙对象.即加入CCSpriteBatchNode的任何对象都必须是CCSprite或其子类. 比如CCSpriteBatchNode包含Fire对象,而Fire对象继承于CCSprite类;如果Fire有子对象,则要求他们也必须继承于CCSprite,依次类推. 不过貌似最新的Cocos2D中该类用的地方越来越少了,而且在Sprite
1. Node中有什么?     Node是Object的派生类,其功能如下:    1) Node有一个核心链表(Array *_children),通过addChild把所有对象组织在一起    2) Node有一个核心的轻量级Timer管理器(Scheduler *_scheduler)    3) Node维持了一个树形的对象管理    4) Node有变换矩阵    5) Node有Op
之前理解的不深,今天遇到一个坑,收获了一些更深的理解。 需求是这样:一个相对布局的Panel,里面有个ImageView,界面其他地方有几个按钮,按下去后需要动态地改变这个ImageView的位置。 按照往常的理解,按钮事件得到触发后,无非这样操作就可以了嘛: node:getLayoutParameter():setMargin({ left = 10, right = 0, top = 0,