cocos 2d test-cpp 学习笔记之AppDelegate.cpp 代码分析
代码源码“` c++ http://www.cocos2d-x.org Permission is hereby granted,free of charge,to any person obtaining a copy The above copyright notice and this permission notice shall be included in THE SOFTWARE IS PROVIDED “AS IS”,WITHOUT WARRANTY OF ANY KIND,EXPRESS OR
AppDelegate::AppDelegate() AppDelegate::~AppDelegate() // 析构函数,在类被销毁之前执行 bool AppDelegate::applicationDidFinishLaunching() Configuration::getInstance()->loadConfigFile("configs/config-example.plist"); // 初始化一个导演对象 , 在cocos 2d中Director 只有一个,《单例模式》 auto director = Director::getInstance(); // 然后通过 导演 获得一个 OpenGL 视图, 这儿使用 [OpenGL] (https://www.opengl.org/) 进行渲染, 学习OpenGl 推荐[《OpenGL编程指南》](http://vdisk.weibo.com/s/BT-B_fs4lQPBs) auto glview = director->getOpenGLView(); if(!glview) { // 创建一个 名称为 “Cpp Tests”的 窗口 glview = GLView::create("Cpp Tests"); director->setOpenGLView(glview); } // 设置是否显示当前的显示 状态, 主要是当前显示的帧率 director->setDisplayStats(true); // 设置动画的帧率 ,一般设置在 1.0/30 以下, 也就是 30帧每秒及以上 director->setAnimationInterval(1.0 / 60); auto screenSize = glview->getFrameSize(); auto designSize = Size(480,320); auto fileUtils = FileUtils::getInstance(); std::vector<std::string> searchPaths; if (screenSize.height > 320) { auto resourceSize = Size(960,640); searchPaths.push_back("hd"); searchPaths.push_back("ccs-res/hd"); searchPaths.push_back("ccs-res/hd/scenetest"); searchPaths.push_back("ccs-res/hd/scenetest/ArmatureComponentTest"); searchPaths.push_back("ccs-res/hd/scenetest/AttributeComponentTest"); searchPaths.push_back("ccs-res/hd/scenetest/BackgroundComponentTest"); searchPaths.push_back("ccs-res/hd/scenetest/EffectComponentTest"); searchPaths.push_back("ccs-res/hd/scenetest/LoadSceneEdtiorFileTest"); searchPaths.push_back("ccs-res/hd/scenetest/ParticleComponentTest"); searchPaths.push_back("ccs-res/hd/scenetest/SpriteComponentTest"); searchPaths.push_back("ccs-res/hd/scenetest/TmxMapComponentTest"); searchPaths.push_back("ccs-res/hd/scenetest/UIComponentTest"); searchPaths.push_back("ccs-res/hd/scenetest/TriggerTest"); searchPaths.push_back("ccs-res"); director->setContentScaleFactor(resourceSize.height/designSize.height); } else { searchPaths.push_back("ccs-res"); searchPaths.push_back("ccs-res/scenetest/ArmatureComponentTest"); searchPaths.push_back("ccs-res/scenetest/AttributeComponentTest"); searchPaths.push_back("ccs-res/scenetest/BackgroundComponentTest"); searchPaths.push_back("ccs-res/scenetest/EffectComponentTest"); searchPaths.push_back("ccs-res/scenetest/LoadSceneEdtiorFileTest"); searchPaths.push_back("ccs-res/scenetest/ParticleComponentTest"); searchPaths.push_back("ccs-res/scenetest/SpriteComponentTest"); searchPaths.push_back("ccs-res/scenetest/TmxMapComponentTest"); searchPaths.push_back("ccs-res/scenetest/UIComponentTest"); searchPaths.push_back("ccs-res/scenetest/TriggerTest"); } fileUtils->setSearchPaths(searchPaths);
auto scene = Scene::create(); auto layer = new TestController();
// Enable Remote Console
return true; } // This function will be called when the app is inactive. When comes a phone call,it’s be invoked too // this function will be called when the app is active again void AppDelegate::setCurrentTest(BaseTest* curTest) BaseTest* AppDelegate::getCurrentTest() AppDelegate 构成了整个程序的生命过程 这个与 Android 中的 activity 有很大的相似之处(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |