Node

cocos2d 一个坑爹的内存泄露

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

cocos2d-x 图片变灰

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

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

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

quickV3动作action

cocos2d-x中动作分瞬时动作和延时动作,在quick中可以通过Node:runAction和transition.execute来执行动作。一个action在执行runAction的时候就绑定到了这个Node上,如果其他Node也要执行这个action要使用action:clone()得到action的拷贝。在组合动作中,最常用的是cca.seq–创建序列动作,动作是顺序执行的;cca,spawn–创建同时执行的动作,通常加入cca.seq中使用。改变透明度的几个fade函数不能对Node的元素起作

Cocosdx:基于Cocos Studio 2.0获取某个节点的方法

对于CocosStudio1.x版本,Cocos2d-x提供了两个seek函数来帮我们解决这个问题:seekWidgetByName和seekWidgetByTag,放置在UIHelper中,这两个函数会自动去搜索各个层,直到搜索到第一个匹配的对象。但是在2.0的机制下,CocosStudio创建的节点可能同时包含Widget以及非Widget类型的节点。而UIHelper提供的两个函数中假定各个子节点类型为Widget,所以原来的方法就不适用新版本了。不过,虽然两个函数假定节点是Widget类型,但都只

在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中时,