问题标签 [pointerlock]

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 投票
0 回答
38 浏览

three.js - 在轨迹球上设置负 minDistance?(或者,结合 PointerLock 和 Trackball)

也许这不是解决它的方法,但我正在寻找一种 PointerLock 和 Trackball 控件的组合 - 我希望能够像 PointerLock 一样通过滚动来无休止地进出移动小车,但能够拖动并像轨迹球一样在所有轴上平移和移动。

我已经尝试了几天的方法,但找不到方法……有什么简单的方法可以做到这一点吗?

谢谢!

0 投票
1 回答
2361 浏览

three.js - 当相机不在原点时如何启动 Three.js PointerLockControls?

我正在尝试在我的 three.js 游戏中使用 PointerLockControls,我希望我的玩家从另一个点开始,而不是从原点开始。

假设我想从 1000,0,0 开始玩。如果我放置:camera.position.set(1000, 0, 0)http://threejs.org/examples/#misc_controls_pointerlock的第 193 行

然后该示例显示了一个奇怪的行为:当我移动鼠标时,相机围绕半径为 1000 的原点运行。我希望从 1000,0,0 开始第一人称视图。如何做到这一点?

0 投票
1 回答
411 浏览

three.js - 使用 PointerLockControls 时更改外观速度

我正在通过示例尝试在 three.js 中的指针锁定,但我找不到太多关于它的信息。我想向用户显示一个文本字段,他们可以在其中手动输入他们的查看速度(即鼠标速度)。

任何人都知道如何做到这一点?似乎找不到如何提高或降低查看速度。

在 PointerLockControls.js 中,更改yawObject.rotation.y -= movementX * 0.002; pitchObject.rotation.x -= movementY * 0.002;确实会改变速度,但我似乎无法找到如何在游戏中更新它。

0 投票
1 回答
1068 浏览

three.js - 如何在 Three.js 中正确使用 getDirection() 和 PointerLockControls

我正在使用PointerLockControls.Three.js

在鼠标单击时,我想将球体位置更新为相机所面对的位置,与z-position某个对象相同。我已经阅读过getDirection(),但似乎无法以正确的方式实现它。这是我尝试过的:

很好,z-position但是 x 和 y 非常接近 0,以至于球体保持“在地面上”并且不会“向左或向右”移动。

任何帮助深表感谢!

0 投票
1 回答
788 浏览

javascript - 退出pointerlockcontrols three.js 不工作

我有以下代码来锁定光标(这很好用):

当我运行一个函数时,我希望禁用指针锁定控件,以便我可以再次使用我的鼠标。所以我尝试了以下方法:

这没有给我任何错误,但我也没有让我的鼠标回来这是为什么?

当我尝试:

我得到 element.exitPointerLock 不是函数

所以我不知道如何解决这个问题:(如果您需要更多代码或jsfiddle,任何建议都会很棒,只要问我:)

0 投票
1 回答
459 浏览

javascript - 实施指针锁定后禁用 A-Frame 光标单击

我在我的项目中使用 A-Frame。有一个光标组件可以让你通过点击与元素进行交互,这与 DOM 点击非常相似。

但是,在我实现了指针锁定后,光标单击不再起作用。指针锁定对我来说效果很好,我可以在场景中四处走动,并且光标总是出现在我面前。

为什么点击不起作用?当我没有进入指针锁定模式时,我可以确认点击工作正常。谢谢!

链接到我的演示:http: //zichao.co/exp/_simu/

我在“#floor”上添加了一个监听器。如果您成功点击了地板,控制台应该会说“你好”。

0 投票
2 回答
1216 浏览

javascript - 鼠标悬停在按钮中心

我在屏幕上显示了一组按钮。我正在尝试实现一个在将鼠标悬停在按钮上时执行的功能(具有类“按钮”)。

该函数需要将鼠标指针显示在按钮的中心,这意味着当实际的鼠标指针在按钮上时,鼠标指针显示在按钮的中心。我尝试使用RequestPointerLockAPI,但这隐藏了鼠标指针,而我希望它显示出来,我相信它只适用于事件处理程序onclick

这是我到目前为止所做的:

请对我如何实现这一点有任何想法?

0 投票
1 回答
152 浏览

three.js - three.js 指针锁多人敌人旋转无法正常工作

我正在基于这个 three.js 指针锁示例创建一个小型多人游戏

我需要在实际玩家屏幕上旋转敌人的头像,这样他才能看到他们正在看的方向,但我不知道如何正确地做到这一点

目前每个敌人都在向服务器发送一个带有他的位置和旋转的对象

服务器接收它并发送给实际玩家,该玩家使用功能在地图中选择相应的敌人网格(化身)并将位置/旋转应用于它

但只有位置有效,旋转不能正常工作:产生的旋转轴似乎是倒置的,它们也会根据实际玩家注视的方向而变化


编辑:

我还尝试将其“克隆”到另一台不同的相机中,如此rotation.order所述

并让敌人派出

但旋转仍然是错误的

0 投票
1 回答
448 浏览

javascript - 在 requestPointerLock 期间识别鼠标事件

启用指针锁定 API 时,有什么方法可以识别右键单击事件(“上下文菜单”)和滚动事件?我正在尝试创建一个基于浏览器的 3d 游戏,其中玩家将能够通过左键单击、右键单击、中键单击和滚动来执行不同的活动——同时锁定指针。

索引.html

应用程序.js

0 投票
0 回答
640 浏览

camera - 如何使相机具有碰撞检测 Physi.js 第一人称射击游戏

项目前提

我的 THREE.js 游戏的想法是让玩家在迷宫般的物体中导航并到达出口。我不仅需要立方体和球体的碰撞检测,还需要从 Blender 导入的模型。我考虑过使用 RayCasting,但我决定使用 Physi.js。

问题

,这个想法是给相机一个“身体”,这样玩家就不能像他们只是一个相机对象时那样穿过墙壁或其他物体。然而,我的“玩家”对象似乎失去了它所有的 Physi.js 属性,只要我给它三个.PointerLockControls( player )。我正在做的是创建一个 Physijs.BoxMesh,播放器,并将相机添加到其中。之后,我将“播放器”对象传递给我的 setupControls() 函数。

控件按预期工作,我可以控制播放器网格,将相机粘在上面创建 FPS 视图,但是当我这样做时,我仍然可以通过墙壁和其他物体移动。我什至将相机移回 Z 位置以确认发生了什么,我可以看到玩家网格只是穿过物体,而不是被阻碍或撞倒它们。

解决方案?

如果我删除 setupControls(player),那么 Physi.js 物理开始在玩家网格上工作!它会从重力下坠落,四处弹跳等等。它看起来很酷,但现在我无法控制它!看来我只能拥有一个或另一个大声笑。那么有谁知道我能做些什么来解决这个问题?我所提出的甚至可能吗?我是 THREE.js 的新手,因此非常感谢任何输入!