所以我一直在使用Farseer作为物理平台游戏,我开始遇到一些问题,如下所示:
当我想要我的角色跳跃时,我不仅仅想要对角色身体施加冲动,但更现实的是,角色身体应该向下推动它下面的物体(1)从而向上推动自己(2)。
当我希望我的角色移动时同样适用。当角色移动时,它应该施加力并推开它下方的物体(1),不要随身携带物体,从而向相反方向移动(2)。
虽然我将在这个游戏中使用骨骼动画,但我想保持它是一个边界框形状。这将是一个联网游戏,物理将通过服务器处理。我更喜欢避免服务器压力,因此我会将字符保存到边界框并将所有骨骼动画保留到客户端。
以下是我的问题:
我被迫"假"这些力量?
在服务器端复制骨架动画是否合理, 并且只为每个角色的不同骨骼使用胶囊体? 这太激烈了吗?
游戏应该能够在多个房间内支持每个房间20-30人。如果涉及到它,我想避免非常沉重的服务器压力。
我试图将此发布到GameDev,但我还没有在那里发布图片的声誉,所以我会首先尝试在这里找到答案。
答案 0 :(得分:2)
不要在您希望玩家移动的方向上施加力,而是沿相反方向施加力。这实际上会产生一个碰撞,并且该框会推动你的角色。如果你玩弄身体恢复财产,你可能会达到一个可以为你服务的可接受的“bounciness”。
您需要检查您的播放器是否先放在盒子顶部,否则您的播放器将向下飞行。
答案 1 :(得分:1)
Farseer body应该跟踪任何当前的碰撞,这就是角色知道下面的东西支持它的方式。我建议对所支持的角色使用力,如果你想要求实,请考虑角色和支持对象的质量,以及跳跃的高度。无论计算什么作为施加到支撑体的向下力,都应该颠倒并应用于角色。
如果你想尝试使用Farseer来实现这一点,而不是自己计算,你可以使用弹簧来做到这一点,但是否则按下支撑对象不会让玩家推动向上。