随笔分类 -  cocos2d-x思考与总结

摘要:在制作一个消除游戏时,有这样一个情况:方块从顶部往下面掉落,在进入布局前,是不能显示的,不然影响视觉体验。那么,既然此方块已经被加入到渲染树了,那么怎么能让其在一部分中不显示,而在另一部分中显示呢? 这就要用到遮罩处理了。在cocos2d-x中,提供了一个裁剪节点ClippingNode,可以... 阅读全文
posted @ 2015-06-18 12:25 Demon90s 阅读(1441) 评论(0) 推荐(0)
摘要:首先要明确的一点是:cocos2dx是支持中文的。因为其编码格式为UTF-8(无签名)——这只是我在网上找到的结论,并非从官方获取,因此不能十分确定,不过应该无误。 那么,为什么在VS2012环境下,cocos2dx不能正确显示中文呢? 这是因为二者编码格式不一致。VS2012中文版的默认编... 阅读全文
posted @ 2015-06-13 22:13 Demon90s 阅读(635) 评论(0) 推荐(1)
摘要:前几天在练习制作一个消除游戏,其中多次遇到这样一个问题:怎么在多个动作结束后,再回调一个函数?比如说,在消除几个宝石后,才需要刷新布局。那么只要有一个宝石的动作没有结束,就不能回调刷新的函数。 在cocos2d-x当中,提供了CallFunc这样一个动作,可以在一个动作结束后回调一个函数。可是... 阅读全文
posted @ 2015-05-22 20:08 Demon90s 阅读(459) 评论(0) 推荐(0)
摘要:对cocos2d-x的内存管理机制的理解,一直是有疑问的,但由于其安全的机制,让我没有花心思去考虑。但最终也要面对。内存管理的基本概念,引用计数和自动管理池,暂且不提。且就一点疑问进行分析和总结。 这一点疑问是: 在每个帧循环结束后,每个对象都会release一遍,那么几遍后不就清除了? ... 阅读全文
posted @ 2015-05-20 17:06 Demon90s 阅读(257) 评论(0) 推荐(0)
摘要:游戏暂停是一个简单的功能,但只有在实际项目中才会用到。因此学了这么久,才在这里遇到了困难。书本中并未讲解,在网上查阅资料,得到了三点解决方案: 1.使用Director的pause方法; 2.先保存屏幕截图,然后push另外一个场景,该场景背景就是此截图。使用RenderTexture动态纹... 阅读全文
posted @ 2015-05-11 20:29 Demon90s 阅读(332) 评论(0) 推荐(0)
摘要:吐槽:本身学习cocos2d-x的各种内置类的时候,是不需要考虑到所谓工厂模式的。我在网上搜索关于工厂模式的解释,也是很难懂。这不得不说是我的境界过低,我知道这是一个成功的模式,只恨自己不能全部理解。那么是什么迫使我自己去分析这个模式呢——在自定义一个类(比如一个Sprite的子类)的时候,首先... 阅读全文
posted @ 2015-05-04 23:45 Demon90s 阅读(342) 评论(0) 推荐(0)
摘要:一开始我就忽略了屏幕适配的问题,现在才发现它是多么的重要。通过实践才领悟了其基础概念,而屏幕适配的策略是建立在其上的,有很多,但我还没有认真研究。这里仅把自己对屏幕适配基础知识进行一个梳理。 关于屏幕适配,有一个基础单位:像素。像素构成了分辨率,不应该把分辨率理解为大小。因此这里不说大小,只说... 阅读全文
posted @ 2015-05-01 00:58 Demon90s 阅读(290) 评论(0) 推荐(0)
摘要:正常情况下,需要在Android.mk文件下面一个一个手动添加cpp文件,如果文件较多,这样就太麻烦了。 解决办法如下: 把Android.mk文件里面的这段代码:LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../C... 阅读全文
posted @ 2015-04-29 22:55 Demon90s 阅读(709) 评论(0) 推荐(0)
摘要:今天在学习FileUtils类的时候,发现了一个3.X版本和旧版本不同的地方:资源文件读取位置。 在旧的版本中,资源文件存放在Resources目录下,读取也在这个目录下。但是新的版本Resources目录仅仅用来存放用,编译后,这些资源文件都会被打包到新的解决方案的目录,比如 ..\proj... 阅读全文
posted @ 2015-04-21 15:31 Demon90s 阅读(480) 评论(0) 推荐(0)
摘要:在新的版本下,一些解决方案也随之不同。今天就遇见两个需要注意的地方,第一个是安卓环境新的配置方法;第二个是分辨率的设置与适配。 先说新的配置方法。其实本质上我感觉和2.2.2版本的配置方案是差不多的,只不过更加简单了(不用再手动的配置NDK了)。配置方法在官网上也有:http://cocos2... 阅读全文
posted @ 2015-04-19 22:04 Demon90s 阅读(347) 评论(0) 推荐(0)
摘要:最早开始学习时,买了一本书,里面所用的版本还是2.X的,因此我也一直使用2.2.2版本。不过现在的版本已经很高了,为了跟上步伐,我重新开始学习新版本,以同时温习知识,并学到新版本的特性。第一个新特性就是新的命令行了,在此进行一些总结。 首先略述一下在2.X版本中创建项目的步骤: 1.打开CM... 阅读全文
posted @ 2015-04-18 19:42 Demon90s 阅读(562) 评论(0) 推荐(0)
摘要:有时候需要避免刚体间的碰撞,那么可以使用filter。它是框架的一个属性,提供了碰撞筛选功能。用法比较有意思,经过了多次的试错,才找到其规则,因此有必要进行一些总结。 filter有三个属性,可以从引擎源代码得知:struct b2Filter{ b2Filter() { ... 阅读全文
posted @ 2015-04-15 22:53 Demon90s 阅读(911) 评论(0) 推荐(0)
摘要:在最新的3.X版本中,引擎整合了物理引擎,提供了更为方便的接口,包括了调试绘图,它是一个世界对象的接口——setDebugDrawMask(int mask),参数一般用DEBUGDRAW_ALL就可以了。那么怎么获得一个世界对象呢?通常使用scene的getPhysicsWorld 接口就可以... 阅读全文
posted @ 2015-04-15 16:42 Demon90s 阅读(1173) 评论(0) 推荐(0)
摘要:在cocos2d-x中引入了两种物理引擎:CHIPMUNK和BOX2D。 针对这两款引擎,cocos2d-x提供了一个CCPhysicsSprite类与其关联,但由于只能使用一个引擎,所以采用了宏定义的方式进行取舍。比如:class CCPhysicsSprite : public CCSpr... 阅读全文
posted @ 2015-04-15 10:47 Demon90s 阅读(317) 评论(0) 推荐(0)
摘要:在书中、网上都有很多的教程,不过由于开发工具版本的不同,配置方法各异。经过了长时间的试错才调试成功。因此有必要对此进行总结,以便日后方便查阅。 调试机安卓版本:Android 4.3 我使用的开发工具版本: 1.cocos2d-x-2.2.2 下载地址:http://pan.baidu.com/s/ 阅读全文
posted @ 2015-04-08 13:51 Demon90s 阅读(329) 评论(0) 推荐(0)
摘要:横版游戏中有用到多张图片轮番显示作为动态背景。但我在实际项目中,发现图片在滚动时有可能出现缝隙,影响了游戏体验。经过分析,这是因为重置缓冲图片时产生了时间差。 轮番显示的原理就是一张图片滚动,另外一张作为缓冲,滚动出屏幕的图片继而替补成为缓冲,这样周而复始地轮换下去。举一个例子:void Te... 阅读全文
posted @ 2015-04-07 23:01 Demon90s 阅读(1153) 评论(0) 推荐(0)