目前在我的桨游戏中为球类实现了move()方法。 桨游戏是一种在底部有桨的游戏,可以左右移动。 球从三堵墙弹起。 我意识到我的move方法是错误的,想知道是否有人可以向我指出实现它的正确方法。 我需要考虑何时球从侧面和顶部反弹

编辑:我玩我的代码,但它仍然没有反弹

我的代码:

    if (this.y+speed<=0+radius)     //Checking for top          
    {
        System.out.println("in y"); //Checking if it's in this condition
        flipYDir();  


    }
    else if (this.x+speed<=0+radius) //Checking for left wall
    {
        System.out.println("in x<"); //Checking if it's in this condition
        flipXDir();


    }
    else if (this.x+speed<courtWidth-radius) //Checking for right wall
    {
        System.out.println("in x>"); //Checking if it's in this condition
        flipXDir();

    }
    else  //Update move
    {
    x+=speed*xDir;
    y+=speed*yDir;
    }

===============>>#1 票数:1

这里有几个问题:

  • 由于您要在x和y上添加相同的值,速度,因此您的球始终会以45度角精确移动。 不过,这可能就是您想要的...

  • 您正在检查x == 0和x == courtWidth,并在那时反转方向,但是如果x = 17,courtwidth = 20,xDir = 1和speed = 5怎么办? 当您增加x时,它将为22,并且永远不会完全等于法庭宽度,并且永远保持不变。 您必须以某种方式处理无法完全落在球场边缘的情况。

  • 您可能不想在所有三个壁上都同时翻转X和Y方向-如果您这样做,则无论球在何处击中,球都将直接向后反弹

  ask by leslie translate from so

未解决问题?本站智能推荐: