如何生成一个介于-10和10之间的随机#,并将该值添加到列表中的每个对象中';s的位置Vector2
本文关键字:列表 添加 对象 位置 Vector2 一个 何生成 随机 之间 | 更新日期: 2023-09-27 18:25:03
我正在C#中制作一个程序,该程序创建一个树对象列表,这些对象具有以类似网格的方式显示所有对象的图形。在创建它们之后,我将把它移到每个单独的树在x和y轴上移动-10到10之间的随机距离;这将有望产生一种散落树木的外观。我基本上还是C#的新手。
我的主要问题是:
我不确定是否可以用我的方法生成-10到10之间的数字
int randX = RandomClass.Next(-10, 10);
当我"偏斜"(偏斜是一个松散的术语,我在这里的意思是"移动",它不是字面意思)每棵树的位置时,我似乎将垂直和水平移动的节省量应用于许多树,而不是单独应用于一棵树
public void SkewTrees()
{
if (skewed == false)
{
Vector2 emptyVector = Vector2.Zero;
int randX = RandomClass.Next(0, 100);
int randY = RandomClass.Next(0, 100);
Vector2 randSkew = new Vector2(randX , randY);
position=new Vector2(position.X+randSkew.X, position.Y+randSkew.Y);
skewed = true;
}
}
带实际输出链接的完整代码:http://pastebin.com/zZ246t7U
对于-10到10之间的随机数,请尝试以下方法:
int rand = RandomClass.Next(1, 10) - RandomClass.Next(1, 10);
或
int rand = RandomClass.Next(0, 20) - 10;
或
int rand = RandomClass.Next(-10, 10);
同样有效。
Random类生成一个具有确定性和可重复性的数字序列。它从Environment.TickCount中提取种子,大约每15分钟变化一次。因此,你在15毫秒的时间间隔内构建的每个随机实例都会产生完全相同的数字。
为了修复代码,您需要确保使用良好的种子值或重用单个Random类。
我建议您使用单个Random实例创建一个静态变量。您的整个程序都可以重用此变量。