码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-08-26 15:47:42      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:cocos2d-x

        通过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\\",  
        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-x------(2)

标签:cocos2d-x

原文地址:http://blog.csdn.net/u011909633/article/details/48002407

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!