COCOS2DX如何在一个类的方法调用另外一个类的方法--单例模式
1:首先想到的是创建对象进行调用
但是呢,创建对象在游戏场景中不太实用,所以通过单例模式来调用比较好
学习Cocos必须得了解一下设计模式
2:单例模式
比如A类调用B类的方法
首先在B类中创建获取单例模式,设置为public
//获取单例
static Bg* getInstance()
{
if (nullptr == pInstance)
{
pInstance = new Bg();
}
return pInstance;
}
然后创建一个私有的静态变量
private:
static Bg* pInstance;
然后就是第三步,也是很重要的一步,我当时做项目,这个找了一天的问题,就是少了这一句赋值代码,否者没有执行调用,在create()申请内存函数中对静态变量进行赋值
Bg* Bg::create()//创建精灵
{
//1:申请Bg内存
Bg* ret = new(std::nothrow) Bg();
//2 :判断ret 不等于空且初始化
if (ret && ret->init())
{
//3:加入自动释放池
ret->autorelease();
pInstance = ret;//传递对象,赋值
return ret;
}
delete ret;
ret = nullptr;
return ret;
}
然后就是在A类中简单的调用了,记得引用头文件
getInstance()->调用B类的方法名
Bg::getInstance()->setrightupdate();
就那么简单,希望对你们有帮助