[英]Using randomly generated numbers for animation
我正在尝试重新创建pong,但遇到了一个我不知道的错误。
到目前为止,我已经获得了大部分的桨和球来显示和移动我想要的方式,但是我似乎无法使球初始化为沿随机方向移动。
这是设置球方向的代码
if(inGame == true)
{
double start = -1;
double end = 1;
Random xRand = new Random();
double xResult = start + (end - start) * xRand.nextDouble();
Random yRand = new Random();
double yResult = start + (end - start) * yRand.nextDouble();
System.out.println("xRand: " + xResult);
System.out.println("yRand: " + yResult);
ball.setMove(xResult, yResult);
}
这是我的setMove方法
public void setMove(double x, double y){
dx = x;
dy = y;
}
这是移动球的实际方法
public void move(){
x += dx;
y += dy;
}
在此方法中连续调用
public void actionPerformed(ActionEvent e) {
repaint();
paddle.move();
ball.move();
}
按照我当前的代码,球基本上只会朝三个方向:向上,向左或向左。 我已经包含了打印行,这些行提供了随机数,但由于它只在三个方向运行,因此似乎可能会四舍五入数字。
由于行进方向的原因,它似乎不能与正数一起使用,而且,当两个随机生成的数字均为正数时,它根本不会移动。
任何帮助,将不胜感激,谢谢
我想你的球的x
和y
坐标是int
。 如果在其中添加一个double
,它将舍入结果。 这就是为什么您的球只能向零或负方向移动。
使用float
或double
来存储坐标。 绘制时,可以将它们四舍五入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.