【发布时间】:2016-03-28 00:55:50
【问题描述】:
我一直在开发一款游戏,但在弹跳效果方面遇到了一些问题。我在互联网上搜索了不同的资源,但没有找到正确的方法。
我想知道是否有某种方法可以计算出球撞墙后反弹回来的度数或角度。
例如,球以特定角度移动,我想知道如何计算反弹时的角度
bollX += bollspeed*Math.cos(Math.toRadians(angle));
bollY += bollspeed*Math.sin(Math.toRadians(angel));
感谢您的帮助。
【问题讨论】:
-
如果墙壁都是垂直或水平的,您可以反转 x 或 y 速度,具体取决于您撞到的墙壁。
-
它们都是垂直和水平的。我试图找出的计算是,如果球移动 315 度,并在水平(90 度)墙上反弹,它应该反弹 275 度。
-
我认为如果你使用向量数学,你会更轻松。您可以查看here 以获得很好的说明。
-
我正在尝试使用 atan2,看看是否可以根据击中墙的哪一侧进行 4 种不同的计算,,,?
-
我已回答a related question here。也许这对你有帮助。正如 Renard 所建议的那样,用矢量数学来表达事情会容易得多。你所需要的只是你正在碰撞的表面的法线向量。
标签: android game-physics trigonometry