我正在使用C#和XNA开发Pong游戏。
我想使用一个随机数(在一定范围内)来决定球是否直线反弹、以何种角度反弹以及球撞到球拍后移动的速度。
请告诉我如何实现。
我想使用一个随机数(在一定范围内)来决定球是否直线反弹、以何种角度反弹以及球撞到球拍后移动的速度。
请告诉我如何实现。
使用Random类。例如:
Random r = new Random();
int nextValue = r.Next(0, 100); // Returns a random number from 0-99
public static readonly
成员通常是我的做法。另请参阅Jon Skeet的答案:https://dev59.com/y07Sa4cB1Zd3GeqP8Pm3#3218084 - Andrew RussellRandom rnd = new Random();
rnd.Next(minValue, maxValue);
即
rnd.Next(1,10);
var random = new Random();
int randomNum = random.Next(min, max);
虽然您可以像其他人建议的那样使用Random
类,但是Random
类仅使用伪随机数生成。在System.Security.Cryptography
命名空间中可以找到RandomNumberGenerator
,它创建实际的随机数。
如何使用:
RandomNumberGenerator rng = RandomNumberGenerator.Create();
byte[] rand = new byte[25]; //Set the length of this array to
// the number of random numbers you want
rng.GetBytes(rand);
RandomNumberGenerator
不会生成“真正”的随机数;它仍然是一个伪随机数生成器。如果您只需要随机性,那么由Random
生成的数字就可以了。而密码学伪随机数生成器只会生成更难以预测的数字。 - Will Vousden这是我的随机数生成器
private static Random rnd = new Random(Environment.TickCount);
private int RandomNum(int Lower, int Upper)
{
return rnd.Next(Lower, Upper);//MyRandomNumber;
}