在Java的球反弹角度

时间:2016-10-13 08:24:44

标签: java coordinates angle bounce pong

我必须在球拍上反弹,计算球反弹的位置:如果它在球拍的某个区域反弹,则必须采用20度的反弹角度,在另一个区域反弹45度的反弹角度并且在桨叶的中心处,弹跳角度为0度。问题是我有相同的球和桨的x和y变量,它来自同一个类“实体”,所以我不知道如何使用坐标来计算球反弹的正确区域。你能帮助我吗?非常感谢,请原谅我的英语不好。

Class Entity:
/** The current speed of this entity horizontally (pixels/sec) */
protected double dx;

/** The current speed of this entity vertically (pixels/sec) */
protected double dy;

/** The current x location of this entity */ 
protected double x;

/** The current y location of this entity */
protected double y;
   

Class Ball:
@Override
public void collidedWith(Entity other) 
{


    prm = y;
    
    if((prm>=50)&&(prm<=60))
    {
        alpha=0;
    }
    else if((prm>60)&&(prm<=80))
    {
        alpha=30;
    }
    else if((prm>80)&&(prm<=100))
    {
        alpha=45;
    }

    tan=Math.tan(alpha);
    dy=dx*tan;
    dx=-dx;
}

   

0 个答案:

没有答案