问题标签 [impactjs]

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 投票
2 回答
804 浏览

javascript - 在 Box2D 中动态禁用碰撞:当实体已经发生碰撞时不起作用

我正在用 Impactjs 编写游戏,并且使用 Box2D 作为物理引擎(具体来说是 Box2DFlash)。所以玩家有一个动作,他不应该与敌人发生碰撞。实现这种碰撞过滤似乎是最好的方法。

所以我设置了敌人的夹具:

对于玩家:

当我想打开/关闭玩家与敌人的碰撞时,我调用这些函数:

它正在工作......但只有当它们没有相互碰撞时。当我面对墙壁并将 categoryBits 设置为0x0000.

更新

好的,我用一个肮脏的黑客修复了它:问题是,联系人仍然存在,所以我不得不以某种方式删除它们。我最初尝试手动删除它们但失败了。

在 Box2D 的手册中写道:

AABB 不再重叠,触点被破坏。

所以我写了一个函数,让玩家在他所面对的目录中移动大约 6px(似乎可以工作的最小量)(如果他当时没有与墙壁碰撞),这将重叠实体并解决问题。

这是有问题的功能:

0 投票
1 回答
155 浏览

javascript - ImpactJS - 变量值在传递给类构造函数之前有效,然后变为 NaN

抱歉,帖子很长,但我想尽可能详细

所以我正在创建一个带有几个自定义ig.Class实例的插件。一个是 Vector 实现:Vec2然后我有一个粒子类:

接下来我在另一个类中有这个轮胎功能:

最后是与轮胎函数在同一类中的更新函数:

我得到的错误是在更新函数的这一行:var velocity = particles[i].pos.sub(particles[i].last).scale(this.friction);特别是错误是说它不能调用sub未定义的方法。我将上面的轮胎方法更改为如下所示,以便可以对其进行调试:

当我记录pos变量时,我得到正确的值输出到控制台,但是如果仍然得到错误。我唯一能想到的是,pos在方法中创建变量的位置tire与在Particle构造函数中传递和分配变量之间的某个位置,它会丢失其值并导致粒子具有pos.x / pos.yNaN 值,我可以在记录时看到varparticles高于错误行 ( var velocity = particles[i].pos.sub(particles[i].last).scale(this.friction);)。我真的不知道出了什么问题我尝试更改Particle构造函数的参数pos分配以通过多种方式分配它(通过Vec2.mutableSet()方法和直接设置。但无论我做什么,它仍然会导致粒子的 NaN 值。

谁能看到我不是的东西?谢谢

0 投票
0 回答
214 浏览

javascript - ImpactJS 和 astar 探路者

使用这个库:https ://github.com/hurik/impact-astar-for-entities

我可以获得打印路径,但是一旦我在我的“怪物”实体中执行 followPath,精灵就会消失?!

http://prntscr.com/1eydqf

我可能做错了什么?

0 投票
2 回答
144 浏览

php - 在影响引擎中从 JavaScript 运行 php 代码

我使用名为Staroids的影响游戏引擎创建了一个游戏。

我创建了一个数据库来存储高分。

我已经按照之前的答案做了它所说的,并查看了其他一些解决方案,但它似乎不起作用!

我正在尝试运行一个包含以下代码的 php 文件:

这是我在 JavaScript 文件中运行的代码:

当它到达此代码时,它会在控制台中出现以下错误:

0 投票
1 回答
345 浏览

javascript - 如何在 Box2D 的 Impact.js 版本中过滤碰撞

我有几个关于 box2d 物理引擎的 Impact.js 实现的问题。

首先,有人可以向我解释在不需要粒子具有精确物理相互作用的情况下,处理粒子效果的最佳方法是什么?在默认的 box2D 引擎中,有一个collides.LITE选项似乎可以很好地实现此目的。然而,在 box2D 中,即使是少量的粒子(比如 15 个左右),由于粒子之间以及彼此之间以及环境之间的相互作用,游戏也会显着减慢。

一个相关但独立的问题是:在 box2D 的 Impact.js 版本中处理碰撞过滤的最佳方法是什么?网上的一些资料解释说,要对其他 box2D 实现使用碰撞过滤,您所要做的就是为每个对象定义collisionBitsmaskBits属性,然后 box2D 会自动完成其余的工作。我在 box2D 的 Impact.js 版本中尝试了这一点,但根本无法操纵碰撞。

有没有人有这种事情的经验?非常感谢。

0 投票
2 回答
208 浏览

node.js - Node js - 使用 Express 提供大量文件

我正在使用影响引擎和套接字 IO 编写 2d 游戏。我决定对网站本身也使用 express。

Impact 要求我从多个目录提供十几个文件(js、css 和图像)。

我怎样才能使用快递服务这些?

提前致谢。

0 投票
1 回答
157 浏览

javascript - Uncaught TypeError: undefined is not a function when using ig.AnimationSheet

我现在正在用 Impactjs 写一个游戏,我已经为这个问题苦苦挣扎了一段时间。在我的 player.js 文件中,当我尝试初始化动画表时出现 Uncaught TypeError。错误位于最后一行。

我的 .requires 看起来像这样:

由于构造函数 ig.AnimationSheet 是该行中唯一的函数,因此我认为它无法被识别。但这让我感到困惑,因为我虽然 Impact.animation 是正确的位置。

0 投票
1 回答
249 浏览

impactjs - 在 ImpactJS 中生成弹丸

使用 ImpactJS 附带的示例代码,我想知道什么

{方向:this.lastPressed}

方法。下面的代码指的是玩家实体,当按下“攻击”按钮时。

“方向”是某种方法吗?我从这段代码中猜测,它告诉弹丸根据实体的方向行进,但我不知道如何。

0 投票
1 回答
3219 浏览

javascript - ImpactJS 和 MelonJS 之间的主要区别是什么?

我将用 Javascript 编写一个简单的基于瓷砖的 RPG 游戏,并带有一个基于瓷砖的大地图。我查看了这个JS 游戏引擎列表,发现对我来说唯一合理的选择是MelonJSImpactJS(因为地图编辑器)。现在我看到了:

  • MelonJS 是免费和开源的,ImpactJS 是商业的(99 美元)
  • 两者似乎都是最新的
  • 两者似乎都很受欢迎
  • 两者都有基于图块的地图编辑器(它们彼此有很大不同吗?)
  • 两者都在画布上绘制
  • 两者都有健全的支持

还有其他我可能忽略的重要差异吗?

您对他们如何处理由大瓷砖制成的大地图有任何经验吗?

它们在性能方面如何比较?我希望能够全屏运行我的游戏。

0 投票
1 回答
495 浏览

javascript - 级别不会在 Impactjs 中加载

我在使用 ImpactJs 加载关卡时遇到问题。当我尝试加载到某个级别时,我在控制台中收到以下错误:

未捕获无法加载资源:loader.js:91 ig.Loader.ig.Class.extend._loadCallback loader.js:91 ig.Image.ig.Class.extend.onerror

我在我的关卡文件夹中保存了一个名为 map1 的关卡,并使用以下代码加载它:

谁能看到我哪里出错了?谢谢 :)