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