Node

[cocos2dx笔记016]cocos2dx 3.2 的UserDefault

我的程序用的就是这个,但是最近老出错,于是分析源代码,发现了一个让我震惊的东西。经过分析,发现用UserDefault每读写一次数据,都会创建一个tinyxml对象,然后读取xml内容。如果是写数据,还是写入xml一次。下面是对应的代码:读取key,所以各种读取key的操作,都是类似这样。doubleUserDefault::getDoubleForKey{char*value=nullptr;tinyxml2::XMLElement*rootNode;tinyxml2::XMLDocument*doc;

在cocos2d-x游戏中实现tips功能

tips的行为很简单:点击某个node触发,当点击区域在target_node范围时出现tips,否则隐藏tips;当target_node位于屏幕左半边时,tips出现在target_node右侧;否则tips就出现在target_node左侧,tips和target_node有一个固定的水平间距;tips和target_node底部对齐,但tips不能超过屏幕范围。这是因为我们用target_node的Worldspace坐标来确定tips的位置,当target_node位于某个可滚动的node中时,

Cocos2d-X3.0 刨根问底五----- Node类及显示对象列表源码分析

之前有一个类Node经常出现在各种场合,不是做为参数就是做为返回值,那么这一章节我们就去看看这个Node类到底在Cocos2d-x里处于一个什么样的地位。直接进入主题,我们打开CCNode.h文件。CCNode.h文件里面一共定义了两个类Node与__NodeRGBA类,从命名上可以看得出__NodeRGBA类肯定是依靠Node类,或者说是Node类的一个扩展,那么好我们开始看一下今天的主角Node。再看一下Node类所有成员变量,看看究竟Node都封装了哪些小编。

【cocos2d-x 3.x 学习与应用总结】2: 在cocos2d-x中使用ccbi

前言本文以3.9版本的cocos2d-x为例,总结了如何在代码中解析、加载ccbi文件。给出一个最简单的使用ccbi实现的helloworld的例子、一个加强版的HelloWorld示例、以及一个最贴近实际使用情况的ccbi使用示例,并结合示例分析ccbi的解析过程。下面以我的实际使用经验总结一下在实际项目中该如何使用ccbi,先从一个HelloWorld说起。

cocos2d-x 图片变灰

cocos2d-x版本3.8近日要用到图片变灰的效果,在网上搜索大致有两种方法:1是取出image,对每个像素进行处理,可以实现,但循环次数太多,不与理会。突然想到UIButton的禁用就是变灰效果,于是查看源码,原来变灰的shader不知什么版本起已经预制了,抄之,代码如下:变灰还原

cocos2d 一个坑爹的内存泄露

讲上面这个原因是今天分析了一下游戏的性能,然后就发现了这个坑爹的内存泄露。正常来说csloader并没有什么问题,但是一些特殊的情况就会造成内存泄露。Node被删除是在release中,当_referenceCount为0时就会释放Node占用的内存。所以在node1cleanup时,会触发node2的cleanup,终止node2的动作,从actionmanager中移除node2,node2的计数-1。这也是最开头的哪个泄露的原因,node没有从actionmanager中移除,一直保持了1的状态。

读书笔记Cocos2d-x之场景、层

Scene:场景在Cocos2d-x中,Scene定义了一个场景。场景只是层的容器,包含了所有需要显示的游戏元素。场景还有一个作用就是流程控制。利用Director::replaceScene等方法,可以使游戏在不同场景中自由切换。先添加的层会被置于后添加的层之下。如果想要为它们指定先后次序,可以使用不同的zOrder值,zOrder代表了该节点下元素的先后次序,值越大则显示顺序越靠上。zOrder的默认值为0.tag是元素的标识码,如果为子节点设置了tag值,就可以在她的父节点中利用tag值找到它。