问题标签 [craftyjs]

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 回答
107 浏览

javascript - 为什么 CraftyJS/Chrome 会限制并发按键事件的数量?

我正在尝试使用 CraftyJS 开发游戏。我在用着

  • 狡猾的 0.7.1
  • 铬 50.0.2661.94
  • 视窗 10
  • 2016 年戴尔 XPS15。

我注意到键盘事件的处理方式有些奇怪。我猜这很大程度上与 Chrome 甚至我的物理键盘有关,而 Crafty 仅与我使用它的 API 有关。

首先,这是我的 SSCCE。此代码在按下时将键添加到键数组中,在释放时将其删除,并每秒注销一次数组。

我注意到一些奇怪的行为:

  • 首先,看起来 Crafty 一次只能识别四个字母按键,除非它们可以用左右手输入。例如,立即按住 ASDFE 会导致:[65, 83, 68, 70]无论我如何抨击 E 键,它仍然无法识别。但是,例如,如果我按住 ASDFJKL,那么我会看到:[65, 83, 68, 70, 74, 75, 76].

  • 一次只能识别两个箭头键,除非第三个是向下箭头。例如,按 LEFT、UP、RIGHT 会导致:[37, 38]但 LEFT DOWN RIGHT 会导致:[37, 39, 40]

这到底是怎么回事?我的猜测是,我的手指和我的 JS 之间的某个人正试图巧妙地纠正错误的按键(错别字),但我不知道是谁,也不知道有什么规则来管理这个。

编辑:我怀疑是我的键盘本身(或操作系统)未能发送这些键盘事件。但我仍在寻找一种确认这一点的好方法。

0 投票
1 回答
52 浏览

javascript - GET 请求未返回 JSON 文件

我正在使用 Craftyjs 游戏引擎,并且在公共目录中的一个 javascript 文件中,该文件与 html 正确连接,我请求一个 JSON 文件,如下所示:

在控制台中,出现 404 错误。

这里是文件目录。public/ 下的所有内容都可以直接请求。

jQuery 在后台进行请求。

为什么找不到 JSON 文件?我该如何解决?

我已经查找了“json 文件的节点 GET 请求不起作用”的问题,但我正在处理的文件中没有节点。

请求将发送到服务器(而不是发送到本地文件系统)。

0 投票
1 回答
143 浏览

javascript - 为什么这个基本的 Canvas 动画不流畅?

我在动画循环中唯一要做的就是更新 x 和 y 坐标,但圆仍然没有像应有的那样平滑移动。这就是小提琴。我正在使用 CraftyJS 为圆圈设置动画。这是执行动画的代码:

其余的计算只完成一次,我不认为只是一堆乘法应该使动画滞后。任何有关如何使动画流畅的帮助将不胜感激。

我之前没有提到xDirection等于0.005*gWidthyDirection等于0.005*gHeight。如果gWidth600球还在移动就好了3px。真的那么快吗?我不想以像素为单位指定宽度(gWidth 是屏幕大小),因为这样不同设备上的游戏玩法会有所不同。有没有办法在保持动画流畅的同时快速移动圆圈?

0 投票
1 回答
75 浏览

javascript - 如何检查一个craftyjs实体是否掉出狡猾的区域?

例如,在这种情况下,我如何得到一个警报,说最后一个实体,英雄已经超出了狡猾的初始化区域?

0 投票
1 回答
90 浏览

javascript - Craftyjs 视口误解

学习 CraftyJS,我错过了一些关于视口如何工作的信息。我需要:跟随英雄的大型水平地图(平台游戏)和相机。是否有任何提示可以在哪里阅读详细信息,解释它是如何工作的?非常感谢!

PS 官方 CraftyJS API 文档在这种情况下对我没有帮助

0 投票
1 回答
192 浏览

javascript - vue.js - craftyjs 点击不起作用

我有以下代码但没有任何反应。

我错过了什么吗?

编辑:

使用答案的示例代码:

0 投票
1 回答
44 浏览

javascript - 如何在多个 CraftyJS 组件上应用重力?

我有三个组件,GroundBlockPlayerGround我希望玩家在与Block实体接触时停止跌倒。我已经尝试过this.gravity("Ground, Block");this.gravity("Ground", "Block");但前者禁用了两个组件的重力,而后者启用了第一个参数的重力。

0 投票
1 回答
101 浏览

craftyjs - Crafty.js 中的自定义组件

我是 Crafty.js 的新手。我目前正在使用这个框架工作一个 2D 自上而下的 RPG。我正在尝试创建一个自定义组件,该组件将包含单元的信息,例如 Health、Mana、Name 等。我的组件代码如下:

然后我将此组件添加到一个单元中,在我的例子中是一个 Enemy 实体:

当我执行代码时,它显示了这个错误:

控制台错误

我相信 unitinfo() 工作正常,因为控制台日志上出现了“随机消息”,并且每帧都在执行。我只是不明白为什么“这个”被认为是未定义的。有人可以帮我吗?

0 投票
1 回答
69 浏览

javascript - TypeError: Crafty.scene 不是函数

我有一个小问题。我正在使用 CraftyJS 开发一个游戏,我需要使用 Electron 来运行它,但是 Electron 会抛出这个错误:

为什么这样做?这是相关的代码+标记:

JS:

0 投票
1 回答
56 浏览

craftyjs - CraftyJS 模糊像素艺术

我是 CraftyJS 的新手。我想用低分辨率图形(例如 10x10 像素图块)制作游戏。

我正在尝试使用Crafty.viewport.scale(10)使游戏大到可以看到,但是缩放游戏会使它变得非常模糊。

就像网络浏览器使用双线性缩放而不是最近邻一样。

在不使其模糊的情况下扩展游戏的最佳方式是什么?