Skip to content

Instantly share code, notes, and snippets.

@sdabet
Last active December 16, 2015 18:50
Show Gist options
  • Save sdabet/5481015 to your computer and use it in GitHub Desktop.
Save sdabet/5481015 to your computer and use it in GitHub Desktop.
Load resources generated by CocosBuilder from cocos2d-x cross-platform app
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
CCSize designSize = CCSizeMake(480, 320);
CCSize resourceSize = CCSizeMake(480, 320);
CCSize screenSize = CCEGLView::sharedOpenGLView()->getFrameSize();
std::vector<std::string> resDirOrders;
TargetPlatform platform = CCApplication::sharedApplication()->getTargetPlatform();
if (platform == kTargetIphone || platform == kTargetIpad)
{
std::vector<std::string> searchPaths = CCFileUtils::sharedFileUtils()->getSearchPaths();
searchPaths.insert(searchPaths.begin(), "Published-iOS");
CCFileUtils::sharedFileUtils()->setSearchPaths(searchPaths);
if (screenSize.height > 768)
{
resourceSize = CCSizeMake(2048, 1536);
resDirOrders.push_back("resources-ipadhd");
}
else if (screenSize.height > 640)
{
resourceSize = CCSizeMake(1536, 768);
resDirOrders.push_back("resources-ipad");
}else if (screenSize.width > 480)
{
resourceSize = CCSizeMake(960, 640);
resDirOrders.push_back("resources-iphonehd");
}
else
{
resDirOrders.push_back("resources-iphone");
}
}
else if (platform == kTargetAndroid || platform == kTargetWindows)
{
if (screenSize.width > 720)
{
resourceSize = CCSizeMake(960, 640);
resDirOrders.push_back("resources-large");
}
else if (screenSize.width > 568)
{
resourceSize = CCSizeMake(720, 480);
resDirOrders.push_back("resources-medium");
}
else
{
resourceSize = CCSizeMake(568, 320);
resDirOrders.push_back("resources-small");
}
}
CCFileUtils::sharedFileUtils()->setSearchResolutionsOrder(resDirOrders);
pDirector->setContentScaleFactor(resourceSize.width/designSize.width);
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionNoBorder);
// turn on display FPS
pDirector->setDisplayStats(true);
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60);
ScriptingCore* sc = ScriptingCore::getInstance();
sc->addRegisterCallback(register_all_cocos2dx);
sc->addRegisterCallback(register_all_cocos2dx_extension);
sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
sc->addRegisterCallback(register_cocos2dx_js_extensions);
sc->addRegisterCallback(register_CCBuilderReader);
sc->addRegisterCallback(jsb_register_chipmunk);
sc->addRegisterCallback(jsb_register_system);
sc->start();
CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
ScriptingCore::getInstance()->runScript("main.js");
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment