我已经实现了一种Pong,其中桨( Rectangle2D )可以旋转。 为了获得更高的准确性,许多内容由 Graphics2D 管理。 旋转也由前一个告知类的方法 rotate(...)管理。
为了达到逼真的反弹,我需要知道球击中球的位置(只有侧面,而不是特定点)。
我试图定义(并旋转)两个 Rectangle2D ,它们代表桨的后部和前部,然后通过命中方法识别这两个中的一个中的反弹(Rectangle2D r,Shape s,boolean onStroke),但它无法正常工作。
这是java类 Graphics2D :
http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html
你有什么想法吗?
答案 0 :(得分:1)
假设您的球拍有一个矩形,并且知道矩形和圆的中心以及矩形的旋转。 假设旋转为零意味着您的矩形水平对齐(宽度>高度)。
q = Math.atan2(矩形的高度,矩形的宽度)