Posted on 2008-07-17 14:23
softgamer 阅读(329)
评论(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里面取值