请教一个碰撞检测的问题

bhbhxy 2017-01-12 04:04:20
如图所示,物体以较快速度从高处下落,会嵌入地面中,地面是由32X32的障碍物组成,此时我只想修正物体y轴的位置让它刚好落在地面上,但同时物体又触发了x轴的碰撞检测(物体在左右运动中也会有障碍物),它会向右偏移,这是错误的修正。同样的问题出现在物体向上下左右和对角线移动中,请问如何判断应该触发哪一个轴上的碰撞检测,忽略另外一个轴?

...全文
343 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bhbhxy 2017-01-17
  • 打赏
  • 举报
回复
引用 6 楼 wuqinfei_cs 的回复:
一步跨大了,掉沟里去了。 你的修正是,一脚踩沟里后,才发现是个坑,然后退回来; 你可以在迈步之前,做一下检测,看是不是能走,以及能走多远。 还有,你的碰撞检测的触发条件是什么呢, 每帧之前还是之后做碰撞检测。
我是采用基于时间的运动 speed * deltaTime,先移动再检测碰撞,如果要在移动之前做检测,应该怎么做呢?
forwardNow 2017-01-17
  • 打赏
  • 举报
回复
一步跨大了,掉沟里去了。 你的修正是,一脚踩沟里后,才发现是个坑,然后退回来; 你可以在迈步之前,做一下检测,看是不是能走,以及能走多远。 还有,你的碰撞检测的触发条件是什么呢, 每帧之前还是之后做碰撞检测。
bhbhxy 2017-01-16
  • 打赏
  • 举报
回复
@showbo @forwardnow @天际的海浪
bhbhxy 2017-01-13
  • 打赏
  • 举报
回复
引用 3 楼 danica7773 的回复:
可以简单点,计算运动物体与碰撞的障碍物的接触角度(两物体中心点夹角)

45<角度<135 y轴碰撞

45>角度>-45 x轴碰撞

其它忽略

由于障碍物列表的顺序不一定,假设物体以大于45度小于135度夹角先与障碍物1进行碰撞检测,此时修正y轴;
然后与障碍物2碰撞,此时夹角小于45度大于负45度,修正x轴;但结果会造成物体在y轴上错误的修正。
下面的图应该只修正x轴。
打字员 2017-01-13
  • 打赏
  • 举报
回复
可以简单点,计算运动物体与碰撞的障碍物的接触角度(两物体中心点夹角) 45<角度<135 y轴碰撞 45>角度>-45 x轴碰撞 其它忽略
bhbhxy 2017-01-12
  • 打赏
  • 举报
回复
引用 1 楼 danica7773 的回复:
一个物体的平面运动总是可以拆分为水平运动和垂直运动
1. 当前加速度大的作为主运动方向
2. 当前速度大的作为主运动方向

so...

像这种情况,vx=vy ,y轴有重力加速度而x轴没有,按照你的说法应该用y轴作为主运动方向,但实际情况应该是物体被挡在左边才对。
打字员 2017-01-12
  • 打赏
  • 举报
回复
一个物体的平面运动总是可以拆分为水平运动和垂直运动 1. 当前加速度大的作为主运动方向 2. 当前速度大的作为主运动方向 so...

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧