首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有重力的情况下使box2d中的物体减速

在没有重力的情况下使box2d中的物体减速
EN

Stack Overflow用户
提问于 2012-01-20 07:27:07
回答 3查看 11.6K关注 0票数 6

我正在做一个台球游戏,所以我的重力被设置为零,我应用脉冲来使主球移动。因为没有重力,我同时使用线性阻尼和角阻尼来减慢球的速度。

虽然球有一些不错的速度,但它们会实际地减速。问题是,当他们减速很多,即将停止,但实际上没有停止大约4-5秒,这是非常不现实的。

我认为其中一个解决方案是检查每一帧球的速度,如果它低于某个数字(即当球即将停止时),将其设为零以停止对象。这种方法的问题是,我正在制作一个多人游戏,其中两个玩家的帧速率可能略有不同,从而使同一镜头的两个模拟不一致。

有没有人能想到其他的解决方案?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-20 22:58:42

我的猜测是,你需要非线性阻尼,所以尝试编辑每一帧上的线性阻尼值,并使用基于当前速度的公式。

票数 4
EN

Stack Overflow用户

发布于 2012-01-20 14:59:47

尝试使用b2Body的线性阻尼参数

代码语言:javascript
复制
body->SetLinearDamping(0.1f);
票数 3
EN

Stack Overflow用户

发布于 2012-06-09 11:45:17

如果你正在制作一个多人游戏,你需要一个裁判来确保没有不一致的地方。两个客户端都连接到的服务器或一个(或两个)客户端可以是主机。

重要的是,每个镜头都经过计算,并在显示之前发送给双方。因为台球是以回合为基础的。每个客户端都可以托管自己的镜头,并将结果发送到对手的游戏实例中进行“重播”。这也意味着延迟应该不是太大的问题,所以你可以逐帧发送球的位置(虽然这不是最优的,但它是最容易实现的)。

如果你想要一些你可以用来连接而不需要设置服务器的东西,看看pubnub (http://www.pubnub.com/)。帐户设置和开发是免费的,并且相对容易设置。

希望这能有所帮助!^^

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8934889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档