我知道C#中的random()函数使用处理器的时钟来返回它的值,很快我不得不做一些技巧让它在短时间内返回不同的值.现在出现了一些新的东西:我可以返回多个不同的值,但它并不是"随机"的.
我可以用这张照片解释一下自己.我让这段代码运行几秒钟......
spawnMsCounter += gt.ElapsedGameTime.Milliseconds;
if (spawnMsCounter > 1)
{
spawnMsCounter -= 1;
random = new Random();
float x = random.Next(-1, game.Window.ClientBounds.Width);
int y = random.Next(-1,random.Next(1,game.Window.ClientBounds.Height));
Coins.Add(new Coin(coinTexture,x,y));
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个:http: //img62.imageshack.us/img62/4783/khrogbeta20110916154637.png
如您所见,大多数点在屏幕的顶部产生; 为什么?以及如何修复 - 或者创建一个更好的代码 - 它?
不要每次都创建一个新的Random对象.将它作为私有静态或您正在使用它的类中的某些东西.