再探cocos2d-x------(2)

再探cocos2d-x------(2),第1张

概述        通过Application::getInstance()->run();这句代码,直接调用到CCApplication中,然后由run()函数调用applicationDidFinishLaunching(),每次看见初始化工作的函数,比如,导演的初始化,FPS,资源路径,第一个场景调用等等。也可以在这先配置好自己以后要用的文件,比如.plist文件等等。随机函数种子等。    

通过Application::getInstance()->run();这句代码,直接调用到CCApplication中,然后由run()函数调用applicationDIDFinishLaunching(),每次看见初始化工作的函数,比如,导演的初始化,FPS,资源路径,第一个场景调用等等。也可以在这先配置好自己以后要用的文件,比如.pList文件等等。随机函数种子等。

之前我一直是要用随机函数了,就在该类里面写一个函数如下:

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\",REG_OPTION_NON_VolATILE,KEY_ALL_ACCESS,&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,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,REG_SZ,(const BYTE *)wszNewData,DWSize);      }  //关闭注册表      RegCloseKey(hKey);  }  
总结

以上是内存溢出为你收集整理的再探cocos2d-x------(2)全部内容,希望文章能够帮你解决再探cocos2d-x------(2)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1069147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存