前端之家收集整理的这篇文章主要介绍了
javascript – 如何检测快速移动物体之间的碰撞,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一般来说,为了检测画布游戏中的碰撞,我使用的东西如下:
function collides(a,b) {
return a.x < b.x + b.width &&
a.x + a.width > b.x &&
a.y < b.y + b.height &&
a.y + a.height > b.y;
}
但是,只有当对象在处理帧时触摸时才会检测到碰撞.如果我有一个速度(像素/帧)大于其路径中的障碍物的宽度的精灵,它将通过障碍物,而不会检测到碰撞.
我将如何查看精灵与目的地之间的内容?
这通常是一个困难的问题,高质量的
解决方案像
Box 2D库将是有用的.
一个快速而肮脏的解决方案(在对角线移动的对象上产生误报) – 检查覆盖当前和前一帧中对象位置的边界框之间的碰撞.
而不是a.x使用min(a.x,a.x – a.velocity_x),而不是a.x a.width使用max(a.x a.width,a.x a.width – a.velocity_x)等
如果快速移动的物体较小(子弹),则测试线(从其起点到原始速度)与其他物体的箱体之间的碰撞.
原文链接:https://www.f2er.com/js/155150.html