cocos2d-x之内存管理与文本输入

本文总结了Cocos2d-x游戏开发中的一些实用技巧,包括重置子类的Z轴遮挡顺序、内存管理方法、避免频繁使用CCAction动作、以及如何实现文本输入等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     这学期一直在学cocs2d-x,虽然一直在写,但总有的东西记不住,东忘西忘,这下干脆把看到的有用的都写在这里,以后说不定用得着。

     (1)重置子类的Z轴遮挡顺序

        reorderChild(cocos2d::CCnode*pChild,int zOrder);

  这个函数的作用是:设置子类对象pChild,让其重新将z轴顺序放在zOrder值上。(就是重新设置子节点的层数位置,是在第一层,还是第几层)


  (2)在cocos2d-x中,创建的局部变量cocos2d-x是会自动管理,无需担心这个对象什么时间删除,也就是不用对其进行内存操作;而成员变量cocos2d-x就不管了,需要自己手动删除管理内存;所以应尽量将对象定义成局部变量。

     如果声明了成员变量,那么务必在本类的析构函数中进行释放。在cocos2d-x中,对retain、release及删除操作都定义了对应的宏方法,这些方法说明如下:

     CC_SAFE_RETAIN(p):安全retain操作。

     CC_SAFE_RELEASE(p):安全release操作。

     CC_SAFE_FREE(p):安全释放操作。

     CC_SAFE_RELEASE_NULL(p):安全置空操作。

     CC_SAFE_DELETE(p):安全删除操作。

     CC_SAFE_DELETE_ARRAY(p):安全删除操作。

 使用这些宏进行删除、release等操作前,cocos2d-x引擎都会进行安全判定,然后再执行操作。


     CCAction动作系列的使用,应尽量避免频繁调用,比如精灵的移动我们没有必要使用动作CCMoveTo、CCMoveBy去实现,而是在一个不断调用的函数(bool  Update(float  dt))中去setPosition即可。


  (3)文本的输入,用于游戏排行榜上玩家的自定义名称,填写帐号、密码等;创建函数为CCTextFieldTTF::create(); 在CCTextFieldTTF中除了可以getString和setString外,还有两个重要方法:

        attachWithIME():此函数是输入开关,当CCTextFieldTTF函数被调用后,cocos2d-x默认会调出当前设备的虚拟键盘。

        detachWithIME(): 关闭虚拟键盘。

    除此之外,我们需要对用户在输入--完成输入--关闭键盘时的每个状态进行监控,此时需要用到CCTextFieldDelegate这个接口来实现;具体步骤如下所示

     1、 class HelloWorld  :  public  cocos2d::CCLayer, public  cocos2d::CCTextFieldDelegate{......}

    2、重写回调函数

    

    3、在cpp文件中实现重写的回调函数




4、调用CCTextFieldTTF的setDelegate绑定接口



     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值