我有一个带有冰球(圆形夹具)和蝙蝠的沙箱(由用户的鼠标移动指示)。如果用户击中冰球,我希望它根据鼠标移动速度获得冲动。 但是我有问题:
解决这个问题的正确方法是什么?
答案 0 :(得分:0)
通过查看XNA的Farseer样本来计算出来。 你必须创建一个Joint,更具体地说,是一个FixedMouseJoint:
oPlayerJoint = new FixedMouseJoint( this.oPlayerBat, this.oPlayerBat.Position )
{
MaxForce = 1000f * this.oPlayerBat.Mass
};
this.oWorld.AddJoint( this.oPlayerJoint );
然后在更新游戏逻辑时,如下所示:
MouseState oMouseState = Mouse.GetState();
Vector2 oMousePos = new Vector2(oMouseState.X - GAMEFIELD_WIDTH / 2f, oMouseState.Y - GAMEFIELD_HEIGHT / 2f);
// Make the bat follow the mouse.
this.oPlayerJoint.WorldAnchorB = oMousePos.ToPhysicsUnits();