根据加载的Texture2Ds,我想创建碰撞顶点以使用Farseer附加到XNA中的实体。
首先要注意的是警告。是因为除了碰撞之外我没有使用Farseer。渲染和所有其他游戏代码都是使用我自己的引擎完成的。 Farseer只是用作背景物理模拟器(只会在发生碰撞时告诉我,然后我会自己处理)。
我应该在这里指出,我是Farseer的新手。从来没有使用它。
所以,如果我使用BayazitDecomposer.ConvexPartition(verts)创建我的List,那么我是否应该将这些数据与Texture2D对象一起存储;然后在创建可碰撞的actor时动态创建List对象?或者我做错了什么?
此外,在http://farseerphysics.codeplex.com/documentation的示例中,它按顶点缩放顶点.Scale()...如果我将所有的Farseer体保留在像素空间中,我是否需要这样做?
谢谢。
答案 0 :(得分:1)
所以,如果我使用BayazitDecomposer.ConvexPartition(verts)创建我的List,那么我是否应该将这些数据与Texture2D对象一起存储;然后在创建可碰撞的actor时动态创建List对象?或者我做错了什么?
使用BodyFactory从顶点列表创建Body类的实例。我建议你为每个演员做这个。但是,您可以通过重用主体来节省一些处理器能力。因此,如果演员死亡,请将主体添加到队列中,然后将其捕捉到创建的新actor。
此外,在http://farseerphysics.codeplex.com/documentation的示例中,它按顶点缩放顶点.Scale()...如果我将所有的Farseer体保留在像素空间中,我是否需要这样做?
不。然而,这意味着就像Farseer而言,像素是一米。我相信如果Radius * Force的扭矩公式,所以任何依赖于半径的东西都不会按预期运行。我建议制作相当于游戏中实际米数的物品。它只是一点额外的分裂。