XNA 3D碰撞无法正常工作

时间:2013-12-19 23:11:08

标签: c# 3d xna collision-detection

我制作了一个游戏,我刚刚将渲染更新为一个实际可行的新系统。当我试用它时,我意识到碰撞已经被打破了。我认为新的世界矩阵有问题所以我把它改成了绘图中的那个,但这并没有改变任何东西。我没有想法,网上没有任何好的消息来源告诉我如何做到这一点。以下链接是我的代码没有编辑的碰撞方法。如果你能告诉我该怎么做,甚至只是一个小费,那就太好了。谢谢!

链接:https://www.dropbox.com/s/a9sc9rcxahvukuf/Collision%20Help.txt

1 个答案:

答案 0 :(得分:1)

您的模型正在根据组合的变换进行渲染,以创建您的效果。世界,但您的球体(对于该模型)不受这些相同变换的影响。因此,您的模型和模型的转换之间存在脱节。你的领域的那些。因此,您无法确定球体是否正确定位或缩放。

虽然球体并不关心模型的旋转变换,但它确实需要相同的比例尺。您给模型渲染它的平移变换。

您的根骨骼或父骨骼中可能存在缩放和/或平移变换,这些变换将通过CopyAbsoluteBoneTransformsTo()应用于模型而不会进入您的球体。对于你的球体,你似乎将它的变换局限于位置变量......这可能还不够。

在球体上始终进行正确变换的一种可靠方法是使用您组合的完全相同的矩阵组(并以相同的顺序)对其进行变换以创建效果。用于渲染模型的世界球体。