问题标签 [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 回答
144 浏览

javascript - 向行进方向发射子弹

我很难弄清楚如何在 8 个方向中的 1 个方向上射击子弹。

玩家只能指向罗盘方向 0、45、90、135、180 等。

所以我需要一个公式,我可以在 spawnEntity 中使用它以恒定的速度向玩家面对的方向发射子弹。

我试过这个;

那么调用是这样的;

但一切都是弧度,我希望它是罗盘度数。

0 投票
1 回答
134 浏览

javascript - 在本地部署在影响 javascript 游戏引擎中编码的 webapp,导致 Chrome 上的 CORS

我正在尝试制作一个 webapp(使用 Impact js 游戏引擎开发),能够在不需要本地主机(使用 file:///C:/...)的情况下在本地运行,并且我需要让它在 chrome 上运行.

它在 chrome 上不起作用的主要问题是,由于 CORS 问题,chrome 会阻止我的媒体(主要是 png/jpg 中的图像)从媒体文件夹中加载。

在花了几天时间阅读并尝试了一些方法后,我无法解决这个问题。任何有这方面经验的人请告诉我是否可能,如果可能,我应该采取什么方法。

我尝试过的方法:

1) 设置 img.crossOrigin = "anonymous" (失败,这仍然被 chrome 屏蔽)

2)使用标志打开chrome --allow-file-access-from-files(有效,但对最终用户来说不是可行的方法)

3) 读取图像并将其转换为数据 uri 格式(失败,由于固有的 COR 问题,数据 uri 转换似乎无法正常工作)

4) 尝试使用 appcache 将所有图像缓存到浏览器缓存中(失败,似乎不起作用,因为它没有从网络服务器访问)

更新:我现在正在尝试编辑 Impact.image 源代码,以尝试在加载到图像时将 src 转换为数据 url

由于某种原因,图像没有被加载到函数中,即使我将图像加载加载到 getBase64Image 函数中,它会起作用吗?

0 投票
1 回答
451 浏览

collision - 是否可以为实体定义更准确的自定义形状碰撞框而不是矩形?

是否可以为实体定义更准确的自定义形状碰撞框而不是矩形?请让我知道这是否可能以及如何?

0 投票
1 回答
89 浏览

javascript - JavaScript 2d 数组返回错误数据

我有一个 2d 数组,它代表我的游戏地图的碰撞层和前景层。我正在尝试根据玩家的位置获取正确的图块以读取图块的编号。但是,当我从数组中调用特定的图块时,它要么返回错误的数字,要么说Cannot read property 'index here' of undefined. 我通过查看数组验证了来自玩家位置的索引应该返回一个非零值,但是它们返回一个零或未定义的消息。这是我用来查找磁贴位置的代码:

这是供参考的数据数组:

0 投票
0 回答
219 浏览

javascript - Impactjs 用 php 和 sql 保存 higscore

好的,所以我和我的伙伴正在创建一个游戏和一个网站,他正在开发游戏,而我正在开发网站。游戏是使用 ImpactJS 引擎构建的,一切正常,但我们遇到的问题是我们应该如何保存高分。目前我们建立了一个网站,您可以在其中登录然后玩,我们的想法是在您完成关卡(或当您死亡时)后获得分数,然后将该分数与当前用户一起发送到数据库那是登录的。我们得到了可以做到这一点的函数,但问题是我们不知道应该如何将分数从 javascript 文件发送到实际数据库。

所以这就是现在的情况:首先我们实际上在 main.js 中获得了 highscore 函数

主.js

我们知道它是我们必须插入数据库的 + 分数。

然后我们得到了 DB 类,这就是将数据插入数据库(顺便说一下,我正在工作面向对象,因为这是一个学校项目,我们必须这样做)

数据库文件

最后我们得到了高分类:

高分.php

是的,所以基本上我们不知道我们应该如何从外部 javascript 文件中获取 +score,并将其发送到 php...我们确实做了一些研究,发现也许我们应该为此使用 Ajax?无论如何,任何人都可以伸出援助之手吗?

0 投票
1 回答
1047 浏览

javascript - 如何实现javascript本地存储

我想为我的成就类中的一个值实现 localStorage。所以基本上这个类所做的就是从后端数据库中获取玩家数据,如果玩家清除某些任务,成就就会被解锁。目前我只有 1 项成就,定义如下

成就:{ 1:{name:'First_Achievement',status:1} },

状态字段就像我的成就的标志。如果状态为 1,则成就仍被锁定,如果状态为 0,则成就被解锁。

这是我的成就解锁时的骨架代码。我的游戏中每 10 秒检查一次此代码块,以查看是否清除了某个任务以解锁成就

所以当我运行游戏时这很好用。“this.Achievements[1].status”设置为 0,直到我下次再次开始游戏。它将“this.Achievements[1].status”设置回 1,并且 if 循环再次运行,因为状态设置回 1,这是我不想要的,因为很明显我希望我的成就只产生或显示一次,并且不是每次我运行游戏。

那么如何在这里实现 localStorage 呢?我想我需要将我的“Achievements.status”字段存储在 localStorage 中,以便 if 循环只运行一次,而不是每次都运行。或者还有其他方法可以实现吗?

我尝试了以下

localStorage.setItem(this.Achievements[1].status,0);

但它不起作用

任何帮助,将不胜感激!谢谢!

0 投票
1 回答
222 浏览

javascript - 不能增加 localStorage 值

每当 if 语句中的条件为真时,我都试图增加我的 localStorage 值,但似乎我无法正确地做到这一点。尽了一切可能。这是我的代码,用于检查并增加值。

所以我有一个我正在使用的 ImpactJS 引擎的 localStorage 插件。我正在尝试增加我在函数中作为参数字符串传递的 probSolKey。每当满足条件时,我都会尝试将自身增加 1。我不知道如何正确实现这一点。任何人都可以帮助我解决这个问题,我将不胜感激!

做一些调试我发现了这个:

抛出一个奇怪的“NaN”值。

0 投票
0 回答
63 浏览

google-chrome - Impactjs - 图像完全崩溃

我目前正在使用 Impactjs(canvas 和 html5)开发我的第一个游戏,用户只需将这张图片发给我,似乎其中一张图片显示得很糟糕 :-)

这是特定于画布的问题/还是特定于网络浏览器(在 chrome 上测试)?

有任何想法吗 ?:)

有问题的图像

0 投票
1 回答
115 浏览

javascript - 在javascript中使用延时函数

我正在尝试在某个条件变为真后设置我的 localStorage 键值,但等待 2 秒才能更新 localStorage 键值

这是我正在尝试做的,但它会引发异常,并且当它尝试设置 localStorage 值时

异常说变量 achkey undefined 虽然我可以在 setTimeout 函数之外使用它。如何正确实现延迟和设置值?我正在使用使用 javascript 的 ImpactJS 引擎。我还在为我的 localStorage 使用插件。

0 投票
2 回答
175 浏览

javascript - 不同系统的localStorage

我对 localStorage 如何工作有疑问。我阅读了文档,并成功地在我们的网页游戏中实现了它。我们正在使用 ImpactJS 引擎并使用这个插件 -> https://github.com/jsantell/ImpactStorage来实现我们的目的。虽然我对网络上持久数据的整个概念仍然很陌生

在我们的游戏中,我们预计大约有 1000 个或更多的团队(每个团队将有大约 5 名玩家)在不同的浏览器、不同的机器上玩游戏。

现在所有团队都将他们的信息存储在数据库中,该数据库为每个团队创建了一个唯一的 ID。对于每个团队,我将有大约 40 个 localStorage 键值用于不同的游戏元素

在将来遇到任何麻烦之前,我想确保我用于 localStorage 的任何值都将持续存在并在不同的系统、不同的浏览器上工作,这意味着如果 localStorage 中的一个键的值被更新,会同一团队的其他不同系统上的密钥也会更新吗?

现在我在一台机器和 3 种不同的浏览器上测试了它,并且值随处更新,但它也可以在不同的机器上工作吗?

如果有人可以简单地解释一下 localStorage 在这种情况下的工作原理?

谢谢!