问题标签 [phaser-framework]

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

javascript - 当我改变精灵的位置时,它会继续自行移动

我正在尝试使用 Phaser.js 创建一个 Snake 游戏,但是在移动头部时我被卡住了。

为了让自己更轻松,我选择不使用任何速度并通过手动设置精灵的坐标来处理移动,我的理论是一旦蛇长大并且每个部分都需要移动,这将更容易处理移动到它前面的段曾经占据的相同位置。我基本上打算将我的游戏世界视为一个网格,如果一切都有速度,那将不会很容易。

我有一个update函数应该在每 50 次调用时移动一次我的精灵。

但这似乎触发了某种速度,即使我明确地将其设置为 0。蛇(让我们假设它看起来像一个)将保持一次移动 2 个像素,直到下一次moveSnake被调用,此时它将加快步伐并同时移动 4 个像素,直到它到达游戏区域的边缘。

我在create函数中创建了精灵并启用了街机物理引擎,如下所示:

我已经验证了节流是update有效的,moveSnake并且不会在每个游戏循环中都被调用。

github上的完整源代码(但老实说,这里没有比我刚刚粘贴的更多内容)

编辑

为了消除一些混乱,在我的代码中moveSnake只被调用了 3 次(尝试添加断点),我预计精灵在这 3 次调用中只移动了 6 个像素,但实际上它移动了 400 个像素。我的问题是为什么精灵的 x 坐标会自行改变,而不仅仅是当我明确设置它时。

0 投票
1 回答
14959 浏览

javascript - 使用 Phaser.js 和 Ionic 开发游戏应用程序(缓慢/不稳定的渲染)

只是为了让您知道(以防有人想开发)。

我使用 Phaser.js 开发了一个游戏应用程序。我将代码放入 Ionic 空白启动器应用程序中。所以基本上视图是使用 Ionic 应用程序呈现的,然后 Phaser 通过 id 拾取 div 并显示游戏。

问题:

它是一个简单的飞扬鸟克隆。它工作正常,但方块运动有点摇晃(好像它们在发抖)。由于 Phaser 使用 WebGL,这可能是渲染缓慢的原因还是由于 ionic 框架(/angularjs)?

我应该使用其他一些工具来构建游戏应用程序吗?

提前致谢。

编辑:

您可以在此处查看代码:https ://github.com/vamshisuram/ionic-flappybird-clone.git 我将所有代码上传到 Git。所以,我想你可以直接将platforms/ant-build/Hello-Cordova-debug.apk 安装到你的手机中并进行测试。或者尝试再次构建并安装。

0 投票
2 回答
867 浏览

javascript - 将边界外的精灵部分包裹到另一侧

我对游戏开发有点陌生。我现在将 Phaserjs 用于我的 html5 游戏。我想将超出边界一侧的精灵部分带到另一侧。我已经浏览了Phaser 中的图像文档。我不确定如何进行。考虑复制该部分并粘贴到画布上,但游戏对象引用将不一样。此外,复制功能有其限制(从图像左上角复制)。

我浏览了Phaser 示例。但没有得到任何线索。

任何帮助表示赞赏。谢谢。

0 投票
1 回答
1994 浏览

phaser-framework - 如何将剪辑矩形应用于组或类似的东西?

我有一个包含 6 个图像的 Phaser.group,该组的高度为 600 像素,但我只希望前 3 个图像看起来高度约为 300 像素,用于图像上的插槽类型效果。

我已经尝试了使用带有掩码的 .crop 的不同选项,但我找到了最好的解决方案。

我怎样才能制作一个clipRect?

谢谢

0 投票
1 回答
4455 浏览

phaser-framework - 在 phaser.js 中捕获画布上的触摸事件

我正在尝试根据lessmilk.com 的 Flappy Bird 教程制作一个具有单一输入的简单游戏。在键盘上,您可以按空格进行跳跃,但在启用触摸的设备上,我只想让用户触摸画布上的任何位置进行跳跃。

查看输入文档似乎可以直接捕获精灵的触摸输入,但我希望用户能够在任何地方单击/触摸。

捕捉所有触摸事件的“Phaser 方式”是什么?我是否需要做一些hacky,比如创建一个覆盖整个画布的隐形精灵?我应该绕过移相器并仅附加 DOM 事件处理程序吗?

0 投票
1 回答
733 浏览

javascript - 使用移相器在 JavaScript 游戏中避开障碍物

我正在使用 Phaser 包(http://phaser.io/ )开发一个 html5/javascript 游戏 )开发一个 html5/javascript 游戏

作为其中的一部分,我需要做一些光线投射来在角色的前方和侧面创建一个视锥。在过去,我使用了统一,这确实是向前发展的,但我不明白我将如何使用移相器来解决这个问题。

我已经勾勒出我想做的事情:

人物和墙

我真的不知道在 javascript/phaser 中从哪里开始。目前,墙是由精灵组成的。我在任何地方都找不到关于如何进行光线投射以进行障碍物检测的任何好的信息,所以如果有人能指出我正确的方向,那就太棒了。

或者,有人可以提出一种更好的多方向障碍检测方法吗?

0 投票
1 回答
135 浏览

a-star - 错误的 astarNode.x 和 astarNode.y 使用 Phaser + AStar 插件

我在尝试使用 AStar + Phaser 时遇到了一些麻烦。我调试了一下,发现了一个小错误。astarNode 属性的 X 和 Y 是错误的。我仍在尝试修复它,但你们可能会帮助我更快地找到问题。

代码

tilemap.json

控制台上的输出应该是:

但是给了我:

更新:我发现了更多的东西。我的 tilemap.json 仅使用 2 个图块(42 和 52)。因此,当调用 setAStarMap() 时,他会使用 for 循环中的当前 x 和 y 更新每个 astarNode 的 X 和 Y(以便更好地了解 AStarPlugin 的 updateMap())。最后,每个使用 42 的 astarNode 都将 x 设置为 24,y 设置为 13(这是最后一个使用 42 瓦片的 astarNode 的坐标),每个使用 52 的 astarNode 将 x 设置为 13,y 设置为12(再次,使用瓦片 52 的最后一个 astarNode 的坐标)。我只是无法弄清楚为什么会这样......

0 投票
1 回答
1516 浏览

phaser-framework - Phaser:来自物体的重力

我已经为我的游戏添加了一个应该有重力的物体,所以想象一个大的空屏幕,中间有一个圆圈代表“地球”。

有什么方法可以让我在游戏中添加任何其他身体被“加速”或“吸引”到这个圈子?基本上如果小行星出现,它应该保持它的初始速度,但会受到地球引力的影响。

0 投票
1 回答
641 浏览

javascript - Phaser 框架中虚拟控件类的问题

在我的游戏中,我需要一些可以在移动设备上使用的按钮(您可以在游戏中按下和/或按住的按钮)。我看到了这个例子(注意这里使用的 Phaser 版本很旧,但是它仍然可以工作)并且能够暂时拥有一些工作按钮。这是该示例的源代码

然而,有一点让我对这个示例中用于创建这些虚拟游戏手柄按钮的代码感到困扰:按钮的代码不是 DRY(不要重复自己)。你可以看到这些按钮是如何一遍又一遍地以相同的方式创建的:

因为它们是以非 DRY 的方式创建的,而且我认为是低效的方式,所以我决定我的按钮应该有一个它们都继承自的游戏手柄按钮类。不幸的是,我在尝试使这个按钮类工作时遇到了很多问题。

我在这里有一个示例,它模拟了我在游戏中尝试做的事情。

(这是我的示例的源代码)

如您所见,箭头键可以很好地移动精灵,但移动按钮效果不佳;他们只移动精灵一帧,然后它再次停止移动。我不确定为什么按键可以工作,但移动按钮却不能。问题似乎是类中的代码没有按照我认为应该运行的方式运行(即,似乎所有关于 , 和 events 的代码onInputOveronInputDown没有onInputUp正确运行,而类只是注意按下按钮时运行的方法)。谁能弄清楚我的按钮类有什么问题?

0 投票
1 回答
840 浏览

javascript - Phaser/Pixi 法线贴图过滤器不工作

我正在尝试将法线贴图应用于 Phaser 精灵,但在 Phaser 2.1.1(Pixi 1.6.1)中出现以下 WebGL 错误:

这是我的代码:

精灵图像和法线贴图都是 512x512。

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