书:cocos2d 游戏开发 节选


cocos2d 游戏开发 节选



所有节点的基类都是 CCNode,它包含一个位置属性,但没有视觉上的显示。它是其他所有节点类的父类,包括最基本的CCScene类和 CCLayer类。

CCScene 类是一个抽象概念,它仅用于根据对象的像素坐标把对象放置到场景中正确的位置。所以,CCScene 节点通常是整个cocos2d场景体系的根节点。多数时候只有一个运行着的场景,不过从一个场景过渡到另一个场景的情况是例外。

CCLayer 类本身几乎没有什么功能,但它可用于接收触摸和加速计输入。它常被用作CCScene的第一个子节点,因为每个游戏至少都会使用触摸输入的功能 


每一次 cocos2d进入下一帧,那些不再使用的自动释放对象将被自动地释放。但这样做也有一个缺点:如果使用上述代码,然后在下一帧或者以后想要访问 myNode 对象时,你就会发现它已经不在内存中了。如果这时发送消息给它,将导致程序出现 EXC_BAD_ACCESS 错误而崩溃。

简单地把 CCNode* myNode 变量当作类成员变量并不意味着对象使用的内存会被自动保留下来。如果想在下一帧或者以后的帧中访问自动释放对象,就必须保留它。并且,如果没有显式地将其添加为子节点,那么之后还是需要对其进行手动释放。

有一种可以更好地使用自动释放对象的方法,并且不需要显式地调用 retain 方法——可以将生成的CCNode对象作为子节点添加到另一个派生自CCNode 的对象中,甚至可以删除成员变量而直接依赖 cocos2d 来保存对象: 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值