【问题标题】:Cocos2d-X 3 Memory ManagementCocos2d-X 3 内存管理
【发布时间】:2025-12-20 04:15:17
【问题描述】:
我目前正在将我在 Cocos2d-X 2.2.6 中制作的游戏迁移到最新版本:Cocos2d-X 3.10,但是我有一个关于内存管理的问题:我创建了很多自己的类,它们继承自CCObject(我使用了很多 XX::create()、xx->retain() 和 xx->release() 方法来创建和销毁对象),但是由于此类已被弃用,我应该在它的地点?
我想我的问题是如何在 Cocos2d-X 版本 3 中进行自定义类的内存管理?
【问题讨论】:
标签:
android
ios
mobile
cocos2d-x
cocos2d-x-3.0
【解决方案1】:
我现在正在开发 cocos2d-x 游戏。
正如 Zen 先生所说,你的类应该继承自 cocos2d::Ref。
和成员变量,使用cocos2d::RefPtr。
它使内存管理更容易,自动管理引用计数。
您无需担心实例创建后的保留或释放。
这里是sn-p。
Sample.h
class Sample : public cocos2d::Ref
{
public:
Sample();
~Sample();
void hoge();
}
UseSample.h
class UseSample : public cocos2d::Ref
{
private:
cocos2d::RefPtr<Sample> sample { nullptr };
void createSample();
void useSample();
}
UseSample.cpp
void UseSample::createSample()
{
this->sample = Sample::create(); // RefPtr increases sample retain count;
}
void UseSample::useSample()
{
this->sample->hoge();
}
希望这能有所帮助。