我正在用Java编写一个通用的蛇游戏,我希望我的苹果在随机坐标上被绘制。但是,当我将坐标设置为基于Math.random()时,两个坐标都会创建相同的Math.random结果。这意味着苹果总是绘制在一条直线上。 (4,4)Math.random()生成相同的数字
//Draws apple
public void drawApple(Graphics2D gfx) {
rectCoords(gfx, red, (int) Math.floor(Math.random()*20), (int) Math.floor(Math.random()*20));
}
// rectCoords(graphics, color, xcoordinate, ycoordinate)
我认为,这是因为他们使用他们的种子,同时值,因为它们在同一时间调用。
我试过Math.random()
,Random
对象,即使是两者的组合。我试过在整个代码中的不同时间将它们声明为变量,甚至在Thread.sleep();
(尽管实际上让它工作起来有些麻烦)抛出。
当然,我不是唯一一个试图在同一时间生成两个随机数的人。我感谢任何看起来过去的人,或者指向类似的线索。谢谢!
编辑:我解决了它,这是另一段代码的问题。虽然,不太确定如何关闭此线程或将其标记为已解决...
您确定*您正在运行的代码与您在此发布的代码相同吗? – Bohemian
Math.random()给出一个大于0且小于1的double值,当你转换为整数时它将总是变为0 – developer
你得到的数字是什么?它总是0吗? – Jobin