《我所理解的cocos2dx》第二章 cocos2dx架构一瞥

本文详细探讨了cocos2dx引擎的内存管理机制,从C++的显示内存管理、C++11智能指针的使用,到cocos2dx特有的垃圾回收和引用计数方式。同时,介绍了UI树结构、游戏对象的坐标系统,以及应用程序架构,包括游戏生命周期、窗口尺寸处理、场景管理和游戏循环。此外,还提及了Scheduler在游戏逻辑更新中的作用。

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

2.1 cocos2dx 引擎系统总览

在这里插入图片描述

2.2 内存管理机制

来源于Object-C

2.2.1 C++显示内存管理

通过 newdelete 关键字来管理
带来问题:

  1. 野指针
  2. 重复释放
  3. 内存泄漏

2.2.2 C++11 智能指针

unique_ptr shared_ptr weak_ptr

  1. unique_ptr 指针不能与其他智能指针共享所指对象内存
  2. shared_ptr 多个shared_ptr 可以共享同一堆分配对象的内存,它在实现上使用了引用计数
  3. weak_ptr 可以用来指向shared_ptr 指针分配的对象内存,但不拥有该内存,通常可以用来验证shared_ptr 指针的有效用

2.2.3 为什么不使用智能指针

看起来 shared_ptr是个不错的选择
缺点:

  1. 智能指针有较大的性能损失
  2. 虽然有效,但是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值