以前使用cocos2d-x 3.14的时候,HelloWorld并不是一个场景类,而是一个图层类,当时的HelloWorld::createScene()是长这样的

Scene* HelloWorld::createScene() { auto scene = Scene::create(); auto layer = HelloWorld::create(); scene->addChild(layer); return scene; }
 
 

而现在的3.17的HelloWorld::createScene()长这样

Scene* HelloWorld::createScene() { return HelloWorld::create(); }
 
 

区别就是HelloWorld本身已经是一个场景了,不需要另外生成一个场景再将HelloWorld加到场景中作为子节点

1|1HelloWorld的布局


HelloWorld场景中有一个cocos的logo,一个关闭按钮,一个HelloWorld的字样,这些小物体都是在HelloWorld::init()中生成的

基类的初始化

我们向HelloWorld场景添加东西之前,需要先调用基类Scene类的初始化函数,然后获得一下visibleSize和origin备用

bool HelloWorld::init() { if ( !Scene::init() ) { return false; } auto visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); ................. }