gpt4 book ai didi

java - 为什么双数不会相乘? ( java )

转载 作者:行者123 更新时间:2023-12-01 18:11:50 25 4
gpt4 key购买 nike

我正在尝试创建 Pong,并且正在为球制定物理原理。

我有以下代码:

public Ball(Pong pong) {
random = new Random();
this.x = pong.width / 2 - this.width / 2;
this.y = pong.height / 2 - this.height / 2;

this.pong = pong;

this.motionX = 2.0;

this.motionY = random.nextDouble();
while (this.motionY > 0.7) {
this.motionY = random.nextDouble();
System.out.println(motionY);
}



multiplier = 8 / this.motionX;
System.out.println(motionX);
this.motionX = multiplier * motionX;
System.out.println(motionX);
this.motionY *= multiplier;


}

public void update(Paddle paddle1, Paddle paddle2) {
this.x += this.motionX;
this.y += this.motionY;

}

public void render(Graphics2D g) {

Graphics2D gg = (Graphics2D) g;

g.setColor(Color.WHITE);
Ellipse2D.Double shape = new Ellipse2D.Double(x, y, width, height);
g.fill(shape);
}

在 Ball 方法中,我将 MotionX 设置为 2.0。稍后在该方法中,我用乘数乘以motionX,这样我就可以使所有球的速度相同。然而,本应是 2.0 * 8.0 (16.0) 的结果却是 8.0。每个数字都会发生这种情况。

有什么问题吗?

最佳答案

你的乘数不是 8...它是 8 除以 motionX 所以当然,如果你乘以 motionX 它会抵消分母。这是您正在做的事情:

x = 2
m = 8 / x
x = m * x = 8 / x * x = 8

关于java - 为什么双数不会相乘? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32407723/

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