个人总结出了三种传参方法,说起来都是泪
1. 在Layer或Scene的头文件中设置变量,并通过制作一个set()函数来传参。比如:
//头文件
Class A : public Layer
{
A();
~A();
CREATE_FUNC(A);
int number;
void setNumber(int number2);
}
//Cpp文件中setNumber函数
setNumber(int number2)
{
number = number2;
}
//使用方法
A* a = A::create();
a->setNumber(3);
//注意这里
a->init2();
这种方法有一个很重要的问题就是不能在init()初始化函数里面使用将要被传参的变量。因为init()在create()中被调用,而传参发生在创建变量之后。因此需要单独再建立一个init2()函数来使用传入的参数。
2.重载create()函数,从而直接向init()传参。具体参见另一篇有关重载create函数的文章。
3.脑洞比较大的一种办法,没试过。创建一个xml文件,通过存取数据来传参。