Mik*_*ley 4 collision game-physics
我目前正在编写像Breakout这样的游戏,我想知道如何才能将球从球面上弹开.
我采用天真的方式将速度旋转了90度,这是:
[vx, vy] -> [-vy, vx]
Run Code Online (Sandbox Code Playgroud)
哪个(不足为奇)没有那么好用.如果我知道球的位置和速度,以及球将击中的点(但是反而会反弹)我怎么能从那个点反弹?
约束:
我不需要任何特定于语言的代码.如果有人能提供一个小的数学公式来说明如何正确地做到这一点对我来说很好.
谢谢!
假设您只是从垂直或水平表面反弹,您可以分别否定X或Y方向的速度.
所以,如果你有[vx,vy],并且它从垂直墙反弹,你将[-vx,vy].
如果你有[vx,vy],并且它从水平墙反弹,你将[vx,-vy].