gpt4 book ai didi

Java pong 游戏 Graphics 或 geom 2D

转载 作者:搜寻专家 更新时间:2023-10-31 20:21:50 26 4
gpt4 key购买 nike

我的第一个项目是用 Java 制作 Pong 游戏。因为我需要为我的 x 计算增量位置和y位置,我认为最好的方法是使用双变量(如果我错了请原谅)。但是你不能使用 double 来填充库中的形状 java.awt.* .

这里我计算的是球碰到 Racket 后的角度

int c = (int) Math.atan2(ball.getPosY(), ball.getPosX());
int delta_x = (int) (1 * Math.cos(c));

int delta_y = (int) (1 * Math.sin(c));
this.dx += delta_x;
this.dy += delta_y;

dxdy我更改了 x 的位置和 y的乒乓球。我在这里画我的乒乓球。

g.setColor(Color.WHITE);
g.fillOval(this.posX, this.posY, 25, 25);

如果我想要 dxdy为了更准确,我必须更改 delta_y 的类型和 delta_x加倍。但是fillOval()不适用于双变量。所以我必须在 geom.Point2D.Double 中制作图形吗?相反?

最佳答案

对 delta 使用 double 值,但将最终坐标转换为 int。

像这样(伪代码风格的东西):

int delta_x=1.3, delta_y=-0.4
public void update(){
double x=(pong_ball.getX()+delta_x);
double y=(pong_ball.getY()+delta_y);
pong_ball.setX(x);
pong_ball.setY(y);
}
// in the pong_ball code
public void paint(Graphics g){
paintBall((int) x, (int) y);
}

编辑:抱歉,我意识到一个错误。如果 delta 足够小,球就不会移动!因此,您也需要将球的坐标存储在 double 中,并且仅在最后绘制球时才进行转换……抱歉

编辑 2:请注意,上面的代码不可编译。您需要更多代码(例如实际的 x-y 字段、jframe 代码等)

关于Java pong 游戏 Graphics 或 geom 2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13389145/

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