我如何使用c#中的随机类来生成单个随机数(xna)

本文关键字:单个 随机数 xna 何使用 随机 | 更新日期: 2023-09-27 18:02:50

我试图使用c#中的Random类生成一个随机数来绘制纹理。我试图在屏幕上的随机坐标上绘制纹理,但是当我尝试运行下面的代码时,纹理一直在随机空间周围移动。我需要把它画出来,并让它留在原地。

Random _Random = new Random();
private int MaxX;
private int MaxY; //screen height and width 
public Texture2D hat;
//code to load in image
//draw code
spriteBatch.Begin();
int hatx = _Random.Next(1, MaxX);
int haty = _Random.Next(1, MaxY);
spriteBatch.Draw(hat, new Rectangle(hatx, haty, 80, 80), Color.White);
spriteBatch.End();

我如何使用c#中的随机类来生成单个随机数(xna)

您只需要为您的纹理调用一次Random.Next

Random _Random = new Random();
private int MaxX;
private int MaxY; //screen height and width 
public Texture2D hat;
//code to load in image
// make sure x and y are initialized only once before rendering loop
int x = _Random.Next(1, MaxX);
int y = _Random.Next(1, MaxY);
//draw code
spriteBatch.Begin();
 int hatx = x;
 int haty = y;
 spriteBatch.Draw(hat, new Rectangle(hatx, haty, 80, 80), Color.White);
 spriteBatch.End();

问题是每次draw函数调用x和y的数字是改变的。因为每次随机数产生一个新数。所以你的纹理会移动到不同的地方。你在这里需要做的是使两个类成员X和Y,并在ContentLoad函数上生成随机数并填充X和Y值。在绘制函数中使用类成员X和Y,而不是创建新的X和Y