gpt4 book ai didi

c# - 多个对象的随机数生成

转载 作者:太空狗 更新时间:2023-10-30 00:34:04 26 4
gpt4 key购买 nike

因此,我正在尝试创建一个带有“下雨绿色代码”的类似矩阵的程序。一切进展顺利,直到我决定将所有字符串实例放入列表并从中绘制/更新。为了达到适当的效果,我需要随机化一些东西。

所有字符串都在 for 循环中创建并存储在您在此处看到的列表中。 interval 和 dropspeed 随机数会改变字符串下降的速度,以及各个字符在 sprite 表中旋转的速度。

出于某种原因,尽管我只是看到一堵文字墙同时掉落,并且所有 Sprite 都以相同的速度旋转。这些类及其各自的函数确实有效……所以问题是我在随机数初始化方面做错了什么?

for (int i = 0; i < (wWidth / 30); i++)
{
Random random = new Random(new System.DateTime().Millisecond);
float randInterval = NextFloat(random);
int dropSpeed = random.Next(1, 7);
_msList.Add(new MatrixString(chinese, randInterval, dropSpeed, dropSpeed, 1.0f, xOff, 10));
xOff = i * 32;
}

最佳答案

您需要在 for 循环之外创建 random 实例:

Random random = new Random(new System.DateTime().Millisecond);
for (int i = 0; i < (wWidth / 30); i++)
{
float randInterval = NextFloat(random);
int dropSpeed = random.Next(1, 7);
_msList.Add(new MatrixString(
chinese, randInterval, dropSpeed, dropSpeed, 1.0f, xOff, 10));
xOff = i * 32;
}

在一个短的运行循环中,使用 new System.DateTime().Millisecond 播种将创建相同的种子值。因此,相同的随机数。

关于c# - 多个对象的随机数生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8953488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com