cocos2d-x 3.6 程序流程
来源:互联网 发布:贵阳广电网络缴费标准 编辑:程序博客网 时间:2024/06/05 17:27
- main.cpp
#include "main.h"#include "AppDelegate.h" //应用委托#include "cocos2d.h" //主要的头文件USING_NS_CC;//名字空间int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ UNREFERENCED_PARAMETER(hPrevInstance);//避免编译器关于未引用参数的警告 UNREFERENCED_PARAMETER(lpCmdLine); // create the application instance AppDelegate app; //定义并初始化委托对象 return Application::getInstance()->run();//应用单列运行}
- run 方法:
int Application::run(){ PVRFrameEnableControlWindow(false); // Main message loop: LARGE_INTEGER nLast; LARGE_INTEGER nNow; QueryPerformanceCounter(&nLast); initGLContextAttrs(); // Initialize instance and cocos2d. if (!applicationDidFinishLaunching())// 初始化,资源适配,屏幕适配,运行第一个场景等代码 { return 1; } auto director = Director::getInstance();//导演类对象获取 auto glview = director->getOpenGLView(); // Retain glview to avoid glview being released in the while loop glview->retain(); while(!glview->windowShouldClose()) { QueryPerformanceCounter(&nNow); if (nNow.QuadPart - nLast.QuadPart > _animationInterval.QuadPart) {//控制每一帧所运行的 最小 时间,从而控制游戏的帧率 nLast.QuadPart = nNow.QuadPart - (nNow.QuadPart % _animationInterval.QuadPart); director->mainLoop();//主循环逻辑代码!!! glview->pollEvents(); } else { Sleep(1); } } //程序退出(清理资源) // Director should still do a cleanup if the window was closed manually. if (glview->isOpenGLReady()) { director->end(); director->mainLoop(); director = nullptr; } glview->release(); return 0;}
- applicationDidFinishLaunching 方法
bool AppDelegate::applicationDidFinishLaunching() { // initialize director auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { glview = GLViewImpl::create("My Game"); director->setOpenGLView(glview); } // turn on display FPS director->setDisplayStats(true);//显示FPS,设为false则关闭显示 // set FPS. the default value is 1.0/60 if you don't call this director->setAnimationInterval(1.0 / 60); register_all_packages(); // create a scene. it's an autorelease object auto scene = HelloWorld::createScene(); //场景创建 // run director->runWithScene(scene); return true;}
- mainLoop 方法
void DisplayLinkDirector::mainLoop(){ if (_purgeDirectorInNextLoop) { _purgeDirectorInNextLoop = false; purgeDirector(); } else if (_restartDirectorInNextLoop) { _restartDirectorInNextLoop = false; restartDirector(); } else if (! _invalid) { drawScene();// 屏幕绘制及一些相应的逻辑处理 // release the objects PoolManager::getInstance()->getCurrentPool()->clear(); }}
0 0
- cocos2d-x 3.6 程序流程
- cocos2d-x程序流程
- cocos2d-x学习tests程序流程
- cocos2d-x 3.6 渲染绘制流程
- Cocos2d-x之 IOS工程平台程序启动流程分析
- cocos2d-x的Helloworld程序运行流程(win32)
- COCOS2D-X 的启动流程
- cocos2d-x触摸流程解析
- cocos2d-x渲染流程分析
- Cocos2d-x 3.x的渲染流程
- cocos2d-x 程序主流程
- 第一个cocos2d-x程序
- cocos2d-x程序内存优化
- Cocos2d-x 3.x Helloword程序分析
- 转帖:cocos2d-x的安装部署流程
- cocos2d-x游戏引擎开发之流程
- Cocos2d-x 绘制节点的流程
- Quick-Cocos2d-X 捋一捋框架流程
- hdu 4442 Physical Examination
- validate的扩展方法
- U-BOOT中mkconfig详解
- ASP.NET DropDownList控件回传值无刷新操作。
- Drools入门-----------环境搭建,分析Helloworld Drools5.0的xls文件转drl文件提升解析效率 使用BRMS的Tomcat6.0配置
- cocos2d-x 3.6 程序流程
- Android开发:shape和selector和layer-list的(详细说明)
- freeswitch与E1设备对接方法
- 新工作要做的事宜
- OC--内存管理之自动释放,[NSMutableArray array]生成的自动释放数组被自动释放后引起的严重后果
- OpenStack Keystone配置产生错误Access denied for user 'keystone'@'10.0.2.15' (using password: YES)") None N
- hdu 1052 Tian Ji -- The Horse Racing
- C++编译器与链接器工作原理
- leetCode 55.Jump Game(跳跃游戏) 解题思路和方法