Box2D 绳索,Javascript 与 Objective-C

Posted

技术标签:

【中文标题】Box2D 绳索,Javascript 与 Objective-C【英文标题】:Box2D rope, Javascript vs Objective-C 【发布时间】:2013-07-22 04:53:00 【问题描述】:

我有一个问题要问有经验的人。我正在尝试制作一个游戏,您可以在其中移动带有悬挂在其下方的链的对象,我正在使用带有 html5/CSS 的 Box2DWeb 和 EaselJS,并且我计划在它正常运行后用 PhoneGap 包装它。我一直在测试运行良好的 OSX Google Chrome 和 ios Safari,并发现我已经在 iPhone 上遇到了性能问题 - 对其进行了分析,这是最大的罪魁祸首。

它是一系列由旋转关节连接在一起的 25 个小物体。我玩过很多不同的方法(包括绳索接头),这是我得到最少拉伸和弹跳的方式(我希望它是一根绳子)。我想知道一个开始 - 有人知道用 Box2D 生产绳索的更好方法吗?对于两个,除了减少步骤迭代、减少链接体等之外,还有什么方法可以做到不降低性能?

对于那些对 PhoneGap/JS 游戏有一点了解的人,我的主要问题是 30fps 的 25body 链是否对这种实现提出了太多要求?或者我可以侥幸逃脱吗?

我很了解 AS3.0 和 JS 'OK',我认为从 ObjectC/C++ 重新开始会变成一个为期一年的项目,因为我什至不知道首先要问 Google...

提前致谢! 乔什

【问题讨论】:

【参考方案1】:

我在我们自己的项目(基于 C++)中发现,动态物体上的顶点数量会严重影响性能(iOS 设备不在性能最好的设备之间)。在您的情况下,我假设它将是 25 个方形主体(每个 4 个顶点),加上链末端的主体,它们都同时处于活动状态。所有这些都会对性能产生相当大的影响。

我会尝试用绳索接头来代替。我唯一能想到的另一件事是,如果您使用正方形作为链中的链接,请尝试使用圆形。我发现它们在性能上要好得多,但是链条的行为会发生变化。您可以限制旋转关节以控制它。

【讨论】:

以上是关于Box2D 绳索,Javascript 与 Objective-C的主要内容,如果未能解决你的问题,请参考以下文章

HTML5之2D物理引擎 Box2D for javascript Games 系列 翻外篇--如何结合createJS应用box2d.js

javascript中的box2d使用大全记录

Box2D中的RayCasting?

炸弹 - Cocos2d/Box2d

绳索使用教程

box2d——2.加入鼠标关节MouseJoint和box2d基础概念