问题标签 [box2dweb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
61 浏览

box2dweb - 如何将 ApplyForce 与 box2DWeb 一起使用

我的 Box2DWeb 草图工作正常,但我无法弄清楚如何将 ApplyForce 方法与身体一起使用。我附上了工作的codepen。在第 85 行,我已经注释掉了我认为可行的行,但是当我包含它时,一切都消失了。

如果有人能告诉我正确的使用方法,我会很高兴。我有 RTFM 并在 StackO 上看到过类似的帖子,但我仍然无法解决。

http://codepen.io/anon/pen/vOJByN?editors=101

非常感谢,

史蒂文

0 投票
0 回答
260 浏览

box2d - 用 pixjs 实现 box2d 调试绘制?

我在 Flash 中使用过 box2d。我正在尝试为 html5 游戏实现它。我打算使用 pixjs 作为我的游戏的渲染引擎。有谁知道如何让调试绘图为 pixjs 工作。

在搜索主题时,我发现了 https://gist.github.com/cbranch/260224a7e4699552d2dc

我怎么都无法让它工作。

0 投票
1 回答
572 浏览

cocos2d-js - Box2D Cocos2d JS

在此处输入图像描述我想在 Box2D Cocos2d JS 的附加图像中创建一个斜坡。但是,将精灵附加到它时,我无法正确创建它。我的代码是:

图像尺寸为 200 * 50,worldScale = 30。

0 投票
0 回答
313 浏览

phaser-framework - 碰撞两个精灵动静并停止移动

我有两个精灵

我用于碰撞检测

我想当你的碰撞时 m_ship 精灵停止移动谢谢

0 投票
0 回答
131 浏览

html5-canvas - AMD 处理器上无法解释的 HTML5 滞后

我正在开发一个使用 Createjs 和 Box2D.js 的 CPU 密集型 HTML5 画布游戏

与类似规格的英特尔计算机相比,该游戏在 AMD 处理器计算机上以一半的帧速率运行,我不知道为什么。

CPU 架构是否会影响 Canvas、CreateJS 或 Box2D.js 的性能?

该游戏是在 ==> http://niboon.x10.mx/deluge/game/找到的早期原型

我之前关闭了密集的自定义着色器,但 AMD 和 Intel CPU 之间仍然存在很大差异。

请按我的方式折腾任何合理的想法,我很难过。

0 投票
0 回答
164 浏览

javascript - 在 Box2D 中查找接触侦听器之外的碰撞点

因此,我在 Box2D 项目中有一个场景,其中传感器“眼睛”(基本上是一条线)与一个或多个物体碰撞,我想找到最靠近眼睛底部的那个。这意味着对于每个与眼睛碰撞的灯具,我想找到碰撞点,以便我可以选择最近的点。

现在,我的代码的结构是在我的联系人监听器中存储一个眼睛列表以及与它们发生碰撞的事物BeginContact,并在EndContact. 我计划每时间步循环一次这个列表。

我的问题:

如何最好地找到接触侦听器之外的碰撞点?据我所知,b2Contact提供的 sBeginContactEndContact没有持续存在,所以我不能使用他们提供的接触歧管。循环浏览眼睛的联系人列表是我最好的选择吗?

谢谢!

使用 Kripken 的box2djs

0 投票
0 回答
121 浏览

javascript - 带 bo​​x2d 腹板的旋转接头,车轮不绕自身轴转动

我正在尝试在 node.js 服务器中使用旋转关节,但是我的轮子不是围绕自己的轴而是围绕身体转动。

这是我的代码:

然后当我按下按钮时,我像这样设置电机速度:

车轮开始围绕身体中心旋转,但我想围绕它自己的中心旋转。

这是 body 和 wheel 的设置:

我究竟做错了什么 ?或者也许我应该使用不同的 box2d 实现。我正在使用来自:https ://www.npmjs.com/package/box2dweb 的 box2d

0 投票
0 回答
942 浏览

javascript - Node.js 应用程序在 24 小时后运行缓慢,可能是什么原因?

我正在开发多人游戏,服务器端是用 node.js 和 box2dweb 编写的。服务器在 aws 上,它是 ubuntu 15 LTS(1GB RAM)虚拟机。当我在最初的几个小时内启动游戏时,游戏运行良好,但在〜 24 小时后,即使您在过去 22 小时内没有人玩游戏并且最后一个对象是在 23 小时前生成的,游戏也会变慢。我尝试使用 node.js 分析器,但是当我启动应用程序和应用程序工作一天后,我得到了非常相似的结果。我应该怎么办?我的问题的可能原因是什么?

我在 10 分钟内监测了函数的使用时间,结果如下:

gamelogic.update() ~40%

b2dWorld.update() ~47%

我的分析器代码:

我应该在删除套接字之前停止监听 socekt 上的套接字事件吗?

bash shell 中的最佳结果: - 运行 10 分钟后 10% 的 CPU 使用率和 8% 的 RAM 使用率 - 运行 4 天后 80% 的 CPU 使用率和 30% 的 RAM 使用率

在测量时,我在游戏中拥有相同数量的游戏对象 + 一名连接到服务器的玩家。

我从 node.js 收到这条消息“(节点:1324)警告:检测到可能的 EventEmitter 内存泄漏。添加了 11 个 upgradeRequest 侦听器。使用发射器.setMaxListeners()来增加限制”在删除调用太多的套接字后,此停留会产生垃圾同一个听众?

0 投票
0 回答
265 浏览

javascript - javascript 游戏 ThreeJS 和 Box2D 冲突?

我一直在尝试使用 box2d 和threejs。

所以box2d有一系列的js迭代,到目前为止我已经成功地在项目中使用它们以及在其他项目中使用了threejs,但是我发现当包含threejs和box2dweb的最新实例时,threejs似乎表现不佳当刚刚接近 box2dweb 但也许我错过了一些非常简单的东西,比如将它们加载在一起的更好方法,或者将它们彼此分开?

我现在已经尝试了 box2d js 代码的几次迭代,但我似乎总是在使用更高版本的threejs 和 box2d 时遇到同样的问题!- 当前版本 91 threejs。

我看到的问题很奇怪。

我真的希望 box2d 阵营或threejs 阵营的人能帮我解决这个问题,好吗?

下面是一个非常简单的示例,我没有初始化任何与 box2d 相关的内容,但只是让库包含存在问题并且您可以通过删除该资源进行测试,然后它的行为就像它应该的那样。

下面的演示使用threejs 91 和box2dweb。它应该每隔几秒钟创建一个盒子或一个简单的球体,每个球体都有随机的颜色。非常简单的演示,您将看到网格类型永远不会改变,并且颜色似乎会在所有网格实例中传播。但是,如果您从左侧选项卡中删除 box2dweb 资源,那么它的功能绝对正常,非常奇怪:/ 包含演示

jsfiddle链接在这里

所以我在本地包括图书馆的方式只是一个简单的......

因此,仅仅通过包含 box2d 库,threejs 就开始表现得很奇怪,我也在多台计算机上测试了这个,并且 box2d(主要是 box2dweb)和threejs 的多个版本。

因此,对于threejs 的更高版本,它似乎与box2d 有一些冲突。

我从研究中发现,大多数 box2d 到 js 的转换都被标记为对于线程冲突不安全。

我不确定这是否是原因。

我还找到了人们成功使用 box2d 和threejs 的示例,但threejs 始终是相当旧的版本,但是当我更新它们时,您可以在我的示例中看到完全相同的问题。

所以下面是我找到的一个演示,我希望我能相信作者,但这里是使用threejs 49的小提琴的副本 在此处输入图像描述

jsfiddle在这里

.....然后下面只是将threejs的资源从49交换到91

在此处输入图像描述

jsfiddle在这里

这是一个很奇怪的库,也许这两个库不再一起玩了,但是如果有人可以提供帮助或有一个他们在最新的threejs版本上一起工作的工作示例,那就太好了。

我尝试了很多不同的 box2d 版本,但总是发现同样的问题,这可能是库冲突或线程不安全的问题吗?

但也尝试链接到提供的小提琴中包含的资源。

任何帮助真的很感激!

0 投票
1 回答
45 浏览

box2d - 如何在box2d中查找矩形顶部是否碰撞

我在自上而下的游戏中有矩形播放器。我想找出矩形的哪一侧(具体是矩形的顶部)被其他游戏对象击中。