Java pong游戏图形或geom 2D

前端之家收集整理的这篇文章主要介绍了Java pong游戏图形或geom 2D前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的第一个项目是用 Java制作游戏Pong.
因为我需要计算我的x位置和y位置的delta,我认为最好的方法是使用双变量(如果我错了,请原谅我).但是你不能使用double来填充lib java.awt.*中的形状.

在这里我计算球击球后的角度

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;

用dx和dy我改变了乒乓球的x和y的位置.
我在这里画我的乒乓球.

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

如果我希望dx和dy更准确,我必须将delta_y和delta_x的类型更改为double.
但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);
}

编辑:对不起,我意识到了一个错误.如果三角形足够小,球就不会移动!因此,你需要将球的坐标存放在双打中,并且只有在最后画球时才会施放…对不起

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

原文链接:https://www.f2er.com/java/444659.html

猜你在找的Java相关文章