Posted on 2008-07-17 14:23
softgamer 閱讀(349)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
學(xué)習(xí)日志
在游戲的設(shè)計(jì)中,常用到隨機(jī)數(shù)的概念,如飛行軌跡, 敵人的多少與出現(xiàn)的位置等等。常常我們總是調(diào)用rand()函數(shù),
它的原型在<cstlib.h>中,比如為了生成0-10之間的整數(shù),通常采用求模符(%)和rand()函數(shù)
rand() % 10;
這叫做"比例縮放",10就是我們常說(shuō)的"比例因子",如果我們?cè)偌由?,結(jié)果就變成了在2-12里面取值。
2 + rand() % 10;2是位移值
但是rand()實(shí)際上生成的是"偽隨機(jī)數(shù)",重復(fù)調(diào)用rand()會(huì)生成看上去是隨機(jī)產(chǎn)生的一系列數(shù)值。然而,這一系列數(shù)值
會(huì)在程序執(zhí)行時(shí)重復(fù)出現(xiàn)。為了實(shí)現(xiàn)真正的隨機(jī)化,就要利用srand來(lái)實(shí)現(xiàn),而且為了提供不同的種子,我們可以
用以下的方法
srand ( time ( 0 ) );
這會(huì)令計(jì)算機(jī)通過(guò)自己的時(shí)鐘來(lái)自動(dòng)獲得種子數(shù)。
srand () 函數(shù)只需在程序中調(diào)用一次,就可以得到所需的隨機(jī)化結(jié)果,多次調(diào)用不僅徒勞無(wú)益,還會(huì)降低程序性能。
srand ( time ( 0 ) );
2 + rand() % 10;
從2-12里面取值