我必须在球拍上反弹,计算球反弹的位置:如果它在球拍的某个区域反弹,则必须采用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;
}