我一直在寻找样本和教程,但我找不到具体的内容。
我正在制作一个2D XNA C#游戏,我想检测玩家到达一条或多条路径线时的最终位置,所以它不会越过它们。
播放器由碰撞矩形组成,路径线都是段。所以基本上我有玩家的碰撞矩形和下一个玩家的位置碰撞矩形。如果下一个玩家的位置碰撞到路径线,我想找到玩家可能遭受的最大位移。
图像或多或少地显示了我想要做的事情:
我想找到红色矩形的位置。
有没有人有任何算法,解决方案或任何可以帮助我的链接?甚至可以是一个样本。
答案 0 :(得分:0)
假设您已经有办法检查特定碰撞盒是否包含碰撞,我建议在玩家当前位置和碰撞盒之间进行一种二分搜索:在碰撞和碰撞之间选择一个点。以前已知的非碰撞盒。使用这个新的碰撞盒再次测试。如果不是碰撞,请在此点与已知碰撞盒之间选取一个点,否则向后中间选择一个点。重复,直到找到满意的准确度(例如,大约1到2个像素)的非碰撞框。只需要进行一些测试,您就应该能够找到这样的观点。