再探cocos2d-x------(2)
2015-08-26 15:13
387 查看
通过Application::getInstance()->run();这句代码,直接调用到CCApplication中,然后由run()函数调用applicationDidFinishLaunching(),每次看见初始化工作的函数,比如,导演的初始化,FPS,资源路径,第一个场景调用等等。也可以在这先配置好自己以后要用的文件,比如.plist文件等等。随机函数种子等。
之前我一直是要用随机函数了,就在该类里面写一个函数如下:
间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。
在run()函数执行中,会先执行PVRFrameEnableControlWindow(bool bEnable)函数,该函数,我在网上查到:
之前我一直是要用随机函数了,就在该类里面写一个函数如下:
float CreateSprite::myRand_0_1() { time_t tt; time(&tt); struct tm * now; now = localtime(&tt); timeval tv; gettimeofday(&tv, NULL); unsigned long reed = tv.tv_sec * 1000 + tv.tv_usec / 1000; srand(reed); return CCRANDOM_0_1(); }然后调用myRand_0_1()函数来生成随机数。今天才发现,原来可以这样写:srand(time(nullptr));生成随机种子的代码,我可以放在applicationDidFinishLaunching()中,因为,srand()是以time为准产生的随机种子,所以,在以后的游戏中,要用到随机数,我可以只调用rand()函数就可以了。因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX
间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。
在run()函数执行中,会先执行PVRFrameEnableControlWindow(bool bEnable)函数,该函数,我在网上查到:
//在注册表中写入对于PVRFrame的显示和隐藏的设置 ////////////////////////////////////////////////////////////////////////// static void PVRFrameEnableControlWindow(bool bEnable) { HKEY hKey = 0; // 打开注册表的 PVRFrame 项 if(ERROR_SUCCESS != RegCreateKeyExW(HKEY_CURRENT_USER, L"Software\\Imagination Technologies\\PVRVFRame\\STARTUP\\", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, NULL)) { return; } const wchar_t * wszValue = L"hide_gui"; const wchar_t * wszNewData = (bEnable) ? L"NO" : L"YES"; wchar_t wszOldData[256] = {0}; DWORD dwSize = sizeof(wszOldData); //读取相应的键值 LONGstatus = RegQueryValueExW(hKey, wszValue, 0, NULL, (LPBYTE)wszOldData, &dwSize); //如果键值不存在,或者键值存在但与当前值不同,重设键值 if (ERROR_FILE_NOT_FOUND == status || (ERROR_SUCCESS == status && 0 != wcscmp(wszNewData, wszOldData))) { dwSize = sizeof(wchar_t) * (wcslen(wszNewData) + 1); RegSetValueEx(hKey, wszValue, 0, REG_SZ, (const BYTE *)wszNewData, dwSize); } //关闭注册表 RegCloseKey(hKey); }
相关文章推荐
- cocos2d-x3.2命令打包
- cocos2d-x & cocostudio bug记录
- 编译cocos framework
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第八节:灯光
- Quick-Cocos2d-x 3.3 Final的资源与脚本加密
- cocos2d-x 3.7.1 lua 笔记
- 再探cocos2d-x-----(1)
- cocos2d-x 3.x 进度条 ProgressTimer
- 如何优化cocos2d/x内存使用和程序大小的程序
- cocos2dx3.4的多线程bug严重
- Cocos2d-x场景功能描述的生命周期
- cocos2dx3.X shader使图片置灰
- Cocos2d-x 多分辨率屏幕适配
- Cocos2d-x 移植到 Windows10 环境搭建
- 【Cocos2dx】使用CCControlButton创建按钮、按钮点击事件,点击事件中的组件获取,setPosition的坐标问题
- 于Eclipse在建筑cocos2d-x的Android开发环境(避免cygwin)
- 在cocos2dx中实现水波滤镜 .
- cocos2d-x 3.X中Sprite背景图片自动拉伸适应屏幕
- 基于cocos2dx 2.x做的一些shader效果Demo .
- cocos2d-x中Sprite的自动拉伸,适应屏幕