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