实现各平台确定性的物理碰撞

1.使用FixedUpdate而不是Update

        1.物理运算,比如刚体运动系统的运算是通过固定的时间来驱动的。

        2.再moba帧同步游戏中,15帧的固定调用差不多是网络那边的极限了,采用其他手段如平滑显示来提高画面的平滑度。

FixedUpdate是以一个固定的帧率驱动的,符合物理刚体碰撞的要求

2.单个物体碰撞

首先要得到内嵌的长度,半径-op(p点是碰撞后,碰撞体离物体最近的一个点)

如何找最近的点?

1.得到向量(物体中心点减去碰撞体中心点)ko

2.dot 点积得到box分别在x,z轴上的投影

3.得到p点坐标(x,z):碰撞体的中心位置,+= x和z轴的偏移位置(投影)

tips:需要钳制x,z轴上的投影。必须在碰撞体范围内

如何改变速度的方向:

首先得到速度方向在法线上的投影TO

OV-OT=>OV+(-OT)校正速度的方向

tips:需要保证物体是朝着碰撞体运动(即速度方向和po法线向量的夹角要大于90度),才修正碰撞后的方向。

3.多物体碰撞

1.什么时候要回弹?怎么判断回弹的角度?

回弹条件:速度方向在角aoc之外,需要反弹

引入法线的中间向量,如图中b法线,判断角2和角5的大小,如果5>2,说明满足回弹条件,需要回弹

2.回弹的大小?怎么判断

找速度方向与边缘法线的夹角最大值,如角3和4,4更大,所以是看v方向和a法线的夹角,计算投影大小

代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值