随笔分类 -  [cocos2d-x 学习]

摘要:#!/bin/sh`rm -rf allLua.zip``mkdir ./tempScripts``mkdir ./tempScripts/scripts``cp -a ./scripts/ ./tempScripts/scripts`echo "拷贝中间文件"`find ./tempScripts -name .svn|xargs rm -rf`echo "删除svn"filelist=`find ./tempScripts/scripts -name "*.lua"`echo "生成luac"for file 阅读全文
posted @ 2013-11-07 19:26 Clin 阅读(320) 评论(0) 推荐(0)
摘要:转自:http://www.eoeandroid.com/thread-251598-1-1.html好像有很多朋友都碰到过这个问题,即在真机调试时,按hone键返回桌面,再回到app时,app会crash或僵死。同时xcode停留在:libGPUSupportMercury.dylib`gpus_ReturnNotPermittedKillClient:0x372fa094: trap0x372fa096: nop原因在于AppDelegate.cpp里:void AppDelegate::applicationDidEnterBackground(){ CCDirector::sha... 阅读全文
posted @ 2013-11-03 18:29 Clin 阅读(4479) 评论(0) 推荐(0)
摘要:http://www.swfdiy.com/?p=1397 阅读全文
posted @ 2013-09-23 22:08 Clin 阅读(407) 评论(0) 推荐(0)
摘要:1,锚点锚点就是所有扭转,移动,缩放的参考点。cocos2-x中默认的锚点是中间点。锚点用比例来默示局限为0-1,(0,0)点代表左下点,(1,1)代表右上点。设置的函数为setAnchorPoint(ccp(0.5, 0.5));2,扭转setRotation(angle) 此中angle为角度不是弧度。正数为顺时针扭转,负数为逆时针扭转。3,地位setPosition(ccp(xPos, yPos)) xPos和yPos为相对于父节点锚点的地位。4,缩放setScale(s);   // 整体缩放setScaleX(s); // 原图片坐标X轴缩放set 阅读全文
posted @ 2013-05-07 16:08 Clin 阅读(243) 评论(0) 推荐(0)
摘要:cocos2d-x场景切换时内存过高导致crash解决方法在用cocos2d-x时很多人都会遇到一个问题,就是在pc上运行都是ok的,可是在ipad和andriod上面,在场景切换时时常会挂掉,用苹果自带的Instruments工具检测时,发现在场景正常运行时,内存大概保持在三四十兆,但是在场景切换时,一瞬间会达到七八十兆,遇到一些素材比较多或者层比较多的场景,则会达到一百多兆。大家知道在ipad1上面,内存最大是128M,那么这个程序如果在ipad1上面运行,肯定会经常挂掉。遇到问题,只能一步步分析,一步步找。(1)先把所有场景的retain的东西检查一遍,看看在Onexit的时候有没有re 阅读全文
posted @ 2013-05-06 16:50 Clin 阅读(624) 评论(0) 推荐(0)
摘要:Cocosd-x设计模式之 :中介者模式1、应用场景cocos2d-x里面的CCDirector类除了应用了单例模式,还应用了中介者模式。Why?因为它封装了CCScheduler、CCActionManager、CCTouchDispatcher、CCKeypadDispatcher和CCAccelerometer这五个对象的交互。它使得这几个对象之间的交互不需要显式地相互引用,使其耦合度变低。当然更多的是使得我们游戏中的对象可以方便地与这些类进行交互,而不需要显式地引用这些类。同时,由于CCDirector类被设计成单例类,这样更加方便了客户程序。由于之前CCScheduler、CCAct 阅读全文
posted @ 2013-05-06 16:48 Clin 阅读(227) 评论(0) 推荐(0)
摘要:优化Cocos2d程序的内存消耗一、避免一个接一个地加载PNG和JPG纹理(他们之间至少等待一帧)cocos2d里面纹理加载分为两个阶段:1.从图片文件中创建一个UIImage对象。2.以这个创建好的UIImage对象来创建CCTexture2D对象。这意味着,当一个纹理被加载的时候,在短时候内,它会消耗两倍于它本身内存占用的内存大小。二、尽可能少的使用jpg图片cocos2d-iphone使用JPG纹理的时候有一个问题。因为JPG纹理在加载的时候,会实时地转化为PNG格式的纹理。这意味着cocos2d-iphone加载纹理是非常慢的,而且JPG纹理将消耗三倍于本身内存占用大小的内存。一个20 阅读全文
posted @ 2013-05-06 16:47 Clin 阅读(326) 评论(0) 推荐(0)
摘要:一、C++里实现委托的例子一个打印机类的委托模式实现:Printer这个类要实现打印功能,它不是自己去实现,而是委托RealPrinter这个类来实现。更一般化的示例如下:其实委托就是一个方法,但是它可以被当作“First-class variable”来对待。即函数可以被存储,被传参,还可以从其它函数内部返回。拥有这种特性,同时大量采用这种特性的语言还有javascript,lua等,这也是现在我们津津乐道的函数式编程。c++中的函数指针,指向成员函数的指针、函数子对象都可以被存储、被传参,还可以从其它函数内部返回。而cocos2d-x里面也是大量采用了这种指向成员函数的指针来实现委托。二、 阅读全文
posted @ 2013-05-06 16:46 Clin 阅读(371) 评论(0) 推荐(0)
摘要:Cocos2d-x设计模式发掘——观察者模式1、应用场景在cocos2d-x中的CCNotificationCenter类,它除了应用单例模式以外,还应用了观察者模式。CCNotificationCenter类是观察者模式中的目标对象,而CCNotificationObserver则是观察者。一个目标对象可以注册多个观察者,当目标对象的状态改变的时候,可以通知观察者对象作出相应的响应。这是标准的观察者模式的实现,但是CCNotificationCenter稍微有些许差别。首先,CCNotificationCenter不是通过自身状态改变来通知观察者,而是通过显式地发送观察者感兴趣的消息(pos 阅读全文
posted @ 2013-05-06 16:44 Clin 阅读(507) 评论(0) 推荐(0)
摘要:Cocos2D-x设计模式发掘之二:二段构建模式所谓二段构建,就是指创建对象时不是直接通过构建函数来分配内存并完成初始化操作。取而代之的是,构造函数只负责分配内存,而初始化的工作则由一些名为initXXX的成员方法来完成。然后再定义一些静态类方法把这两个阶段组合起来,完成最终对象的构建。因为在《Cocoa设计模式》一书中,把此惯用法称之为“Two Stage Creation”,即“二段构建”。因为此模式在cocos2d里面被广泛使用,所以把该模式也引入过来了。1.应用场景:二段构建在cocos2d-x里面随处可见,自从2.0版本以后,所有的二段构建方法的签名都改成create了。这样做的好处 阅读全文
posted @ 2013-04-11 17:38 Clin 阅读(253) 评论(0) 推荐(0)
摘要:cocos2d-x学习之自动内存管理和常见宏1.自动内存管理(1)概述C++语言默认是没有提供自动内存管理的。使用者需要自己分配,自己释放。在cocos2d-x里提供了一个自动内存管理的方案。主要是通过CCObject来提供的,用户只要继承了CCObject,就可以通过调用autorelease()来告诉系统进行自动内存管理。一般用法就是:CCLayer* pLayer = CreateLayer(s_nActionIdx);pLayer->autorelease();(2)自动内存管理的实现自动内存管理的实现原理大概是:用户设置自动释放功能时,内存管理(CCPoolManager)会自 阅读全文
posted @ 2013-04-11 17:36 Clin 阅读(210) 评论(0) 推荐(1)
摘要:1.改变sprite的zorder函数:reorderChild2.removeFromParentAndCleanup3.removeAllChildrenWithCleanup 阅读全文
posted @ 2013-03-16 22:47 Clin 阅读(166) 评论(0) 推荐(0)
摘要:cocos2d-x HTTP开源库1. https://github.com/greathqy/Cocos2d-x-Asynchronous-Http-Request-Library2. https://github.com/calfjohn/cocos2d-x/tree/Network/Network3. https://github.com/clawoo/NetworkOperationQueuehttp://blog.sina.com.cn/u/2765476005 阅读全文
posted @ 2012-10-25 09:29 Clin 阅读(251) 评论(0) 推荐(0)