[英]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.