Kaw*_*awa 3 c# xna collision-detection
想象一下以下场景:我有一个级别,其物理结构是从一组边界矩形构建的,并结合预渲染的位图背景.我的演员,包括玩家角色,都有自己的边界矩形.如果一个演员设法卡在一个等级块内,部分或其他方面,它将需要再次移出,以便它与该块齐平.
我在生物休息期间想到的未经测试的技术如下:
如果发现演员的盒子与水平盒相交,则确定每个矩形的中心点在哪里.如果演员的中心高于等级框,则移动演员以使演员的矩形底部与等级的矩形顶部齐平,反之亦然.然后横向做一个类似的事情.
对此有何看法?关于更好方法的建议?
实际上,边界是XNA BoundingBoxes,其Z从-1到1,但它仍然是2D游戏.
你读过N教程了吗?它们是一个精彩的介绍,完整的小演示,基于分离轴定理的碰撞检测和简单的投影响应.(它们实际上在N游戏中使用效果很好.)教程涵盖的不仅仅是你需要的,但它们非常通用(可以扩展到许多其他形状),并开始触及快速移动的对象和其他问题反应技巧.
即使你决定采用比SAT实现更简单的东西,这可能会给你很多好主意.
(如果你已经完成了这项工作,如果你想让自己的思绪受到影响,请尝试查看游戏开发者大会物理教程日的一些演示文稿,包括realtimecollisiondetection.net出版物,essentialmath.com教程幻灯片,这两本书,和/或从这些网站链接的其他内容.我也强烈推荐GDC会议本身.虽然我们仍然不需要或者特别想要在我们合作的手持游戏平台上使用花哨的GJK,但有些更简单诸如"配置空间"和Minkowski之和和差异等概念极大地影响了我对物理和碰撞检测的看法以及我们如何实现它.)