问题标签 [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 投票
1 回答
1030 浏览

javascript - 使实体从 ImpactJS 中的另一个实体反弹

我有一个受重力控制的玩家实体,我在屏幕底部有另一个可以移动的实体。

当我下落的玩家实体撞到底部的实体时,我希望它从它身上反弹。

理想情况下,我想使用玩家实体的 .bounciness 属性。

0 投票
1 回答
502 浏览

javascript - 根据角度和速度使实体反弹

我想要做的是将一个实体从桨上弹起,并让它对桨的速度做出反应。

所以就像在旧的突围游戏中一样,你移动桨的速度越快,角度就越钝。

到目前为止我所拥有的是这个;

我的数学不像以前那样。

编辑

Player 是一个实体,具有 size.x 和 size.y、pos.x 和 pos.y、velocity.x 和 velocity.y 等属性。这个对象具有相同属性并且是桨。

如果你愿意,球员就是球。

所以你移动桨,它在 y 维度中的位置被设置,你在 x 中移动它。

0 投票
1 回答
869 浏览

javascript - iPhone 5 和全画布宽度

好的,所以我的 iPhone 5 到了(我住在澳大利亚,很幸运能在美国之前拥有它),我想做的第一件事就是使用Impact JS引擎为我的 2D 平台游戏充分利用88像素的额外宽度.

我无法理解如何实际修改画布宽度。

这是我以前使用的:

ig.main('#canvas', MyGame, 60, 240, 160, 2);

现在,我认为将240像素增加44像素会很容易(考虑到横向两侧各有44像素):

ig.main('#canvas', MyGame, 60, 284, 160, 2);

但是,在上述代码更改后,我仍然在两侧看到44像素的黑条。

不确定我是否必须修改任何其他 Impact 引擎文件才能使其正常工作。我还没有玩够它,因为我现在正在工作,不应该真的在我的游戏上工作。我确定还有一些其他方面我必须修改才能使其正常工作。

顺便说一句,我正在使用iOSImpact并将我的游戏直接部署到我的 iPhone 5,因此其中可能还有需要更新的文件。

我还注意到以下用于在移动设备之间进行检测的属性。我也需要ig.ua.iPhone5在这里投入一处房产。

我在以下内容上做了一个 console.log,这就是它返回的内容:

ig.ua.viewport.width= 640

ig.ua.viewport.height= 960

ig.ua.screen.width= 1280

ig.ua.screen.height= 1920

我对上述结果也有点困惑,特别是 ig.ua.viewport.width 返回960。我会认为它应该返回1136

0 投票
2 回答
778 浏览

javascript - 试图让两个同时使用触摸事件的操纵杆

我已经为此奋斗了两天。我正在使用一个名为 ImpactJS 的 HTML5/JS 游戏引擎,有人制作了一个非常有用的插件来为移动设备创建操纵杆触摸区。这个想法是您在屏幕上指定一个区域,当该区域被触摸时,操纵杆被激活。

我正在使用的插件的代码在这里。我稍微修改了它以添加“curPos”(用户当前触摸的点的 x 和 y 坐标),否则所有代码都是相同的。我一直在尝试自己解决这个问题并联系原始创建者,但他们目前似乎无法访问,我无处可去。

我确定我在这里做错了什么,但是虽然我可以让触摸区域自己完美地工作,但每次我尝试同时使用两个操纵杆时,它们都会部分地相互覆盖。

我在游戏初始化时指定了两个区域,如下所示:

this.joystick1 负责玩家轮换。this.joystick2 负责玩家加速。在我的 Player 实体中,我有两个操纵杆的以下移动代码。同样,当我只有一根手指在屏幕上/一个正在使用的操纵杆上时,这非常有效:

然而,只要我将第二根手指放在屏幕上,第一个操纵杆就会被覆盖。我可以旋转然后移动或移动然后旋转,它工作正常,但我需要同时做这两个。

我发现 touchStart.x 和 touchStart.y 似乎在我点击以使用另一个操纵杆而不只是相关的操纵杆 1 或操纵杆 2 时为两个操纵杆设置,即使在插件代码中这些坐标只是为了受到影响如果该操纵杆的触摸在指定区域内。我相信这部分是造成这个问题的原因。在这个阶段,我已经花了几个小时试图弄清楚这一点,并且就像我开始时一样迷茫。

有人可以同时使用这两个操纵杆为我指明正确的方向吗?

0 投票
1 回答
546 浏览

impactjs - ImpactJS 碰撞

我有几个关于使用“正确”进行图层碰撞的问题。

  • 是否可以使用可用的碰撞图块从 A 点制作机器人?对于每张地图,我想制作一个从 A 点到 B 点的机器人。但是为了轻松添加关卡,我想整合我的起点和终点。

  • 机器人/播放器是否可以将一块瓷砖与另一块瓷砖区分开来?例如,允许用户可以放置他的角色,但不能放置机器人。

  • 我想确定机器人的方向。在带有碰撞系统的机器人的四种运动(上、下、左、右)中,我不知道是否有可能知道当其他 3 个被阻止时唯一可能的方法,除了一只手测试解决方案,但在这种情况下,我们看到字符测试每个解决方案(即切换位置)。有没有办法在机器人做正确的解决方案之前模拟最糟糕的旅行?

预先感谢您的回答

0 投票
1 回答
761 浏览

javascript - 当我使用 jQuery.ajax 获取脚本时抛出语法错误

我有以下代码:

我正在尝试使用 jQuery.ajax 获取脚本,我也尝试过速记函数$.getScript(),并且我在参数中得到SyntaxError了a ,即使在 chrome 开发人员工具的网络选项卡下它显示脚本为成功获取状态码为 200。这是我正在获取的脚本:errorThrownerror

我在那里看不到任何语法错误,所以我有点难过。如果有人在任何帮助之前看到我没有或遇到过的任何东西,将不胜感激。

0 投票
1 回答
6473 浏览

html - 用于游戏 UI 的 Angular JS

我目前正在使用 html5 和 Impact JS 游戏引擎构建一个网页游戏。我想在画布/影响引擎的顶部覆盖 html 组件,并且我正在寻找一些有助于 ui/依赖注入/数据绑定等的框架。

所以我找到了 angular js,很高兴看到这么棒的框架,直到经过几天的研究,我在他们的开发者指南中遇到了这个小片段。

“游戏和 GUI 编辑器是非常密集和棘手的 DOM 操作的示例。这些类型的应用程序与 CRUD 应用程序不同,因此不适合 Angular。在这些情况下使用更接近裸机的东西,例如 jQuery可能更合适。”

这有点令人不安,部分原因是我似乎无法找到有关此声明的任何细节。如果我尝试使用 angular 来渲染/循环游戏引擎,那么是的,它可能不会很好,但作为 UI 层肯定应该没问题吗?

有没有人在这方面有经验,我需要做一些棘手的 UI 事情,如果不使用 Angular JS 之类的东西,我相信这需要更长的时间。

0 投票
2 回答
460 浏览

html - 在 HTML5 画布上为两个对象之间的路径设置动画

我们正在使用 Impactjs 开发一款游戏,允许在点击实体时“链接”实体。基本上这只是在两点之间画一条线,带有霓虹灯效果。到目前为止,一切都很好。现在,我们有一个请求让“链”连接动画化——火、火花等。基本上看起来它们需要实际的图形动画才能看起来正确的东西。由于实体之间可以有任何距离/角度,我们被困在如何最好地为此实现解决方案 - 即如何绘制对角线图像,例如,在我们可以动画的两个随机点之间。任何想法我们关于如何实现这一点的建议将不胜感激。

0 投票
1 回答
191 浏览

impactjs - 用户输入缩写 - ImpactJS

所以在我的最终状态下,我想让用户输入他们的姓名首字母。我已经设置了一个包含所有字母的数组,触发选择一个字母和 font_draw,但我似乎看不到,但我收到一个错误,说我的函数未定义。有任何想法吗?

0 投票
1 回答
217 浏览

javascript - 为什么我的精灵/实体不会直线移动?

我的实体应该朝着鼠标直线移动。它很接近,但还没有完全到那里。这是一个工作演示,向您展示我的意思。

这是一个屏幕截图: 实体不沿直线移动。 红色代表鼠标所走的路径。如您所见,实体不采用相同的路径。

相关代码:

我怀疑该move_to_coord方法有问题,但是在调整了太多小时后,我仍然不确定它是什么...

船为什么不走直线?