1.AppDelegate.cpp文件里面的applicationDidFinishLaunching函数其实可以看做C语言里面的main函数,是整个游戏运行的入口
这个函数里面的语句
auto scene = HelloWorld::createScene(); //创建一个HelloWorld类型的场景,其实是一个带着层,层中带着节点的场景
// run
director->runWithScene(scene); //运行这个场景
2.HelloWorld类是一个继承自层的类,.h文件里面有三个函数的声明,第二个和第三个是自己的初始化函数和构造函数,第一个是创建场景特意写的一个函数声明,HelloWorld是一个继承自层却可以创建场景的特殊类
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(HelloWorld);
3.HelloWorld.cpp文件有两个函数的定义,分别是.h文件里面第一个和第二个函数的定义,把自己的构造函数的定义省略了
Scene* HelloWorld::createScene()
{
auto scene = Scene::create(); //创建一个场景实例
auto layer = HelloWorld::create(); //创建一个HelloWorld类型的层实例,这里会调用默认的构造函数和HelloWorld::init函数
scene->addChild(layer); //把这个层实例添加到了场景实例中
return scene; //返回场景实例
}
4..HelloWorld.cpp文件中的init函数的定义,是HelloWorld类自己的初始化定义,在HelloWorld::create()被调用时调用,是对实例层的定义
if ( !Layer::init() ) //先执行父类init
{
return false;
}
auto rootNode = CSLoader::createNode("MainScene.csb"); //创建一个节点(其实可以是各种类型的节点,Node,Sprite...)
addChild(rootNode); //添加节点到层实例
return true; //init成功,返回true
}
注意:
刚开始的时候,节点的添加可以直接在HelloWorld的init函数的定义中直接auto相应的对象并获得实例,再把实例添加到HelloWorld层中来显示,这里还要设置节点的位置(节点的大小还有其他属性在各自类的init函数中定义),后期要把这些节点的添加代码另外用一个GameController类来管理