做屏幕适配的时候,通过以下代码把Scene放到屏幕正中
保证不同分辨率下Scene都在正中间
MyScene::init()
{
Layout* layout = static_cast<Layout*>(cocostudio::GUIReader::getInstance()->widgetFromJsonFile(“xx.json”));
this->addChild(layout);
Director* pDirector = Director::getInstance();
auto visibleSize = pDirector->getVisibleSize();
auto origin = pDirector->getVisibleOrigin();
this->setAnchorPoint(Point(0.5f,0.5f));
this->setPosition(Point((visibleSize.width-960)/2+origin.x,(visibleSize.height-640)/2+origin.y));
}
======================================================================================
Layout* layout = static_cast<Layout*>(cocostudio::GUIReader::getInstance()->widgetFromJsonFile(“xx.json”));
测试环境,cocosstuio设计分辨率960640,
在其他分辨率下调试(1024768),
场景切换时不加切换特效显示正常
Director::getInstance()->replaceScene( pScene );
加入切换特效时,切换时显示位置正常,切换完成后MyScene显示位置就不在正中间了
Director::getInstance()->replaceScene( TransitionMoveInR::create(0.6f, pScene) );
跟没有在init里加下面语句的效果一样
this->setAnchorPoint(Point(0.5f,0.5f));
this->setPosition(Point((visibleSize.width-960)/2+origin.x,(visibleSize.height-640)/2+origin.y));