c# – 随机变量选择相同的值,尽管单个实例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 随机变量选择相同的值,尽管单个实例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1457字,纯文字阅读大概需要3分钟。
内容图文
我正在使用Visual C#(Winforms Application)开发一款游戏,该游戏具有来自Panel的所有4个侧面的导弹,具有随机速度,损坏和轴值的位置.初始化变量时使用的所有随机Next()函数都使用包含在另一个类中的相同Random变量,并用于所有随机使用.
然而,对于20个导弹的阵列,多次为坐标选择相同的值,使得由于图像的重叠,在视觉上仅存在3或4个导弹.这也发生在速度和侧面变量上,并且可能与损坏变量有关,但我还没有检查.
导弹是矩形,其中包含图像. X和Y坐标受到导弹延伸的GameObject类中包含的旋转移动值的影响,这意味着我必须通过缩放值来划分和倍数以在像素坐标和纹理坐标之间切换.
以下是导弹一旦到达面板侧面而不击中玩家就重新生成的代码.
side = game.rand.Next(1, 4);
switch (side)
{
case 1:
angle = 90;
x = game.rand.Next((int)(30 / xScale), (int)(990 / xScale));
y = (int)(30 / yScale);
break;
case 2:
x = (int)(1000 / xScale);
y = game.rand.Next((int)(30 / yScale), (int)(610 / yScale));
break;
case 3:
angle = 180;
x = game.rand.Next((int)(30 / xScale), (int)(990 / xScale));
y = (int)(610 / yScale);
break;
case 4:
angle = -90;
x = (int)(30 / xScale);
y = game.rand.Next((int)(30 / yScale), (int)(610 / yScale));
break;
}
game.rand是存储在另一个类中的常见随机变量.它应该沿y轴或x轴选择随机变量,但通常只选择2个不同的值,尽管这种方法被调用20次.
任何和所有建议欢迎.非常感谢您的阅读.
解决方法:
您的代码的一个问题是您使用Next(int,int)来获取随机值,而您拥有的值不是整数而是加倍(30 / xScale).
请改用NextDouble方法:
public double GetRandomNumber(double minimum, double maximum)
{
return game.rand.NextDouble() * (maximum - minimum) + minimum;
}
内容总结
以上是互联网集市为您收集整理的c# – 随机变量选择相同的值,尽管单个实例全部内容,希望文章能够帮你解决c# – 随机变量选择相同的值,尽管单个实例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。