问题标签 [lance]
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.
javascript - 从听众那里获取信息并将其传递给游戏引擎的最佳方式是什么?
[Lance] 从听众那里获取信息并将其传送到游戏引擎的最佳方式是什么?目前正试图让 Spaaaceship 跟随我的鼠标。我制作了一个 MouseControls.js,它监听鼠标移动并记录光标的 X 和 Y。然后我在客户端引擎中使用以下代码将其发送到游戏引擎
然后在游戏引擎中,我尝试读取 processinput 方法中的第二个参数,如下所示:
但我收到错误“无法读取未定义的属性'cursorY'”。我知道其他控件的每个键每次都做同样的事情,但我不知道如何传递变量信息(cursorX/Y)。这都是修改 spaaace 教程顺便说一句。我应该改为制作鼠标对象吗?
更新:我已经深入挖掘并学到了更多,所以我想我已经缩小了我的问题。如下:
在游戏引擎处理输入的那一刻,它只有输入的名称,没有其他信息,这对于每次都执行完全相同的操作的按键来说很好。然而,随着鼠标的移动,一旦我收到“mouseMove”输入,我还需要从我的鼠标控制器中获取鼠标 X 和 Y 的位置,这在游戏引擎中是不可见的(据我所知)。那么我如何在那一刻获得这些价值呢?
由于您看不到我的代码,因此相当于从 GameEngine 的 processinput 方法中的 KeyboardControls 中获取“activeInput.up”值
javascript - 在 Lance Game 中向单个玩家发送“秘密”数据
我想知道 lance-gg 中是否有一种简单的方法可以只向每个玩家发送特定于玩家的数据,而不是向所有玩家发送所有数据。
我希望创建一个扑克游戏,并且不希望将每个玩家持有的数据广播给所有玩家,而只让每个玩家接收有关他们自己的牌的信息。
这在当前的 GameEngine 和 ServerEngine 之间很容易实现吗?
在游戏过程中,需要执行以下步骤:
- 向每个玩家“发”牌(分别向每个玩家发出牌,并广播一个事件以指示其他客户端应该为收到牌的玩家设置动画)
- 在要更新的其他数据之外存储和保存发牌
- 如果玩家断开连接然后在手牌过程中重新连接,则检索玩家卡
- “展示”牌(向所有玩家广播任何展示的牌,如翻牌和摊牌牌)
玩家的卡片也需要存储在服务器上,但不是每一步都重新广播。
multiplayer - 是否有必要在 worldUpdate 中包含物理确定性的游戏对象?
为了减少数据传输大小和为每个 worldUpdate 序列化世界对象的计算时间,我想知道是否可以省略那些物理可以完全在客户端游戏引擎上忠实模拟的对象的同步(它们不是 playerObjects所以 playerInput 不会直接影响它们,它们的物理特性完全是确定性的)。与这些 GameObjects 的交互将完全由不那么频繁的 GameEvents 处理。如果客户端运行与服务器相同的物理特性并且可以访问相同的初始条件,我觉得这应该是可能的。
当我尝试从后续 worldUpdates 中省略 GameObjects 时,我发现它们的运动变得更加不稳定,并且它们的移动速度比没有省略它们时更快;但是,当我在保持客户端打开的同时停止游戏服务器时,如果我没有省略它们,它们的动作更像是我所期望的。这一切都在我的本地机器上,外推同步。
lance - Lance Game Engine pong 教程出现语法错误
在 Lance Game Engine 中,当我尝试运行他们的 pong 教程时,我输入:
我收到此错误:
有任何想法吗?
lance - 将对象绑定到另一个对象的正确方法是什么?
我希望有一个对象位于演员的一侧,因此不需要计算其物理特性,并且可以使用演员本身进行预测。
我该如何正确地做到这一点?
lance - 将服务器生成的地图传达给客户端的最佳方式
我从 lance-gg 开始,正在构建一个游戏,每隔几分钟就会生成一个新的游戏地图。客户端游戏引擎需要接收生成的地图。目前我正在将地图注册为可序列化的对象,并在服务器启动时向游戏世界添加一个新实例。
该地图是一个双整数数组,可能非常大,所以我想避免将它作为网络方案的一部分来实现(无论如何我认为我在这里做得不正确),因为它不需要非常更新经常。我还想在游戏世界中保留对它的引用,以使其与实际改变位置的对象分开。
做这个的最好方式是什么?
lance - 如何用长矛左右移动物体
有人可以帮我让ponggame演示中的球拍横向移动吗?我添加了键绑定:
我还更改了游戏引擎: processInput(inputData, playerId) {
}
它不会工作,任何帮助将不胜感激。
javascript - 多人 html5 游戏中的 Lance.gg 不同步
我正在尝试制作一个multiplayer game in HTML5
. 我找到了 lance.gg 并玩了起来。我像这样修改了Pong游戏。
- 移除桨(只剩下球)
- 将重力设置为
(0, 0.1)
- 设置
Ball.velocity.y = -3
每次键盘输入空格键
这是结果https://youtu.be/MmQOqR71Df0。如您所见,它并没有真正在窗口上同步。我怎样才能让它在许多玩家之间顺利移动?
lance - Lance JS 库:Spaaace 教程对移动设备上的触摸输入无响应
开始尝试使用Lance JS 库来构建多人游戏。我无法让Spaace 教程在我的 Android 设备(运行 Android 8.1.0 的 Pixel 2 XL)上接受输入。游戏在我的笔记本电脑上运行良好。
将手机连接到笔记本电脑时,我在 Javascript 控制台中看到了以下错误消息:
在 MobileControls.js 中替换这一行
用这条线
修复了 TypeError。
但游戏仍然无法响应触摸输入。游戏运行,AI 飞船偶尔会飞过并朝我的飞船开枪。