When utilizing PointerLockControls, three.js struggles to render the scene

I am encountering an issue with my three.js scene not rendering properly when I create a PointerLockControls object. I am at a loss as to what the problem might be.

Here is my main.js code:

const THREE = require("three");
var PointerLockControls = require('three-pointerlock');
//utils
import detect from "./detect"
import dialogs from "./dialogs"
import calc from "./calc"
import {Player} from "./charackters"


//3D stuff
import world from "./world"

//Scene creation
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 1000 );

var controls = new PointerLockControls(camera);

camera.position.y = -50;
camera.position.z = 40;
camera.rotation.x = calc.rad(90);


//WebGL Renderer
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.setClearColor(0x000000);
document.body.appendChild( renderer.domElement );

world.drawFloor(scene, THREE);
var cGeo = new THREE.BoxGeometry(10,10,10);
var cTexture = new THREE.MeshNormalMaterial();
var Cube = new THREE.Mesh(cGeo, cTexture);
scene.add(Cube);


//tick function
var clock = new THREE.Clock(true);
function animate() {
    requestAnimationFrame(animate);
    controls.update(clock.getDelta);
    renderer.render( scene, camera );
}

if(detect.webgl()){
  animate();
}else{
  dialogs.error("Your browser does not support WebGL. Please install a modern Browser such as Google Chrome or Mozilla Firefox to play AlphaWars!", "Warning:")
} 

If you require any of my additional files, please let me know.
Thank you in advance.

Answer №1

It's possible that you are not using the PointerLockControls correctly. Remember to include scene.add( controls.getObject() ); right after initializing the controls with var controls = new PointerLockControls(camera); since the PointerLockControls object includes a pitchObject attribute that needs to be added to the scene.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Efficiently adapting html content for Vue localization

I've been utilizing the v-html tag to display HTML in my Vue pages. However, I came across a string that was a complete HTML file with content like this: <html xmlns="https://www.w3.org/1999/xhtml"> <head> .... <style> < ...

Struggling to bypass server side rendering in Next.js and display dynamic component exclusively on the client side

In my pursuit to dynamically render a customized react component that includes react-owl-carousel within a next js application, I encountered a challenge. As I discovered, the react-owl-carousel component is not compatible with server-side rendering. To w ...

What is the best way to show the interior color of a cube in three.js?

My plan is to create a room using THREE.js starting from a basic cube. Here's what I have written so far: function loadModelcube() { console.log("Function executed successfully"); cube.traverse( function( node ) { if( node.material ) { ...

Encountered an error when attempting to load resource: net::ERR_CERT_AUTHORITY_INVALID following deployment on Vercel

I recently deployed a chatUI-app on Vercel that fetches chats from an API located at "http://3.111.128.67/assignment/chat?page=0" While the app worked perfectly in development, I encountered an issue after deploying it on Vercel where it ...

One of the json.dumps outputs contains a null value

I am currently configuring a front-end user authentication check using Parsley.js and Django. Here is my view: @requires_csrf_token def password_check(request): email = request.POST.get('email') password = request.POST.get('password ...

"When attempting to pass a string into the res.send() method in Node.js, undefined

As a new Node.js user, I'm attempting to send data back to the browser by utilizing a function called load_blocks() from an external file that I created, and then calling it with res.send(). I currently have two basic files in my setup: The first on ...

What is the best way to transform a string into a sequence of numbers using JavaScript?

Is there a clever method for transforming a string into a sequence of numbers in Javascript (not just converting "0.5" to 0.5, but rather "Hello" into 47392048)? Any suggestions are welcomed. Many thanks! ...

Efficiently and Effectively Comparing Two Arrays of Objects in JavaScript

Let's imagine we have 2 sets of data arrays, A (original) and B (updated). var A = [ { id: 1, value: 'Product Name 1' }, { id: 2, value: 'Product Name 2' }, { id: 3, value: 'Product Name 3' }, { ...

Is there a way to cancel a fetch request and initiate a new one right away?

Below is an illustration taken from MDN. The example showcases two buttons - one for sending a request and the other for canceling it. var controller = new AbortController(); var signal = controller.signal; var downloadBtn = document.querySelector(&apos ...

Command for setting AFK status using quick.db and checking if it's working

I have been struggling for a while to get this command working. I am trying to make it display the author's status as "trying a fix". I'm not sure if quick.db is the right solution for this, but I've attempted to save the author's stat ...

Unexpected identifier error encountered while working with XMPP in Node.js

Error: Unexpected identifier XMPP with Node.js Recently delving into the world of Node.js and XMPP, I encountered a syntax error while trying to read the chat stanza using ltx. The specific error message was: const logEntry = 'Received message from ...

Is there a way to ensure one request completes before allowing another to be executed in Express/Node?

I am currently working on a task that involves fetching data from a third-party API (iTunes) to search for content provided by the API. The backend, which is handled by Express and Node, will interact with this third-party API. My goal is to trigger a POST ...

Is there a way to implement a css/javascript property specifically for a div that is selected in the url?

Take for instance the scenario where I possess the URL example.com/#foo. In this case, CSS styling will be directed to the div with the id foo. If achieving this solely in CSS is not feasible, what methods in JavaScript or jQuery can be used efficiently ...

Utilize the NPM package manager in the zsh shell on Ubuntu within a Windows 10

After transitioning to the zsh for coding in Python and configuring the environment variables, I am now encountering an issue while trying to start a small JavaScript project. The problem arises when attempting to use npm, as initializing the repo results ...

Is it possible to retrieve the createdAt timestamp without displaying the 'GMT+0000 (Coordinated Universal Time)'?

After conducting an extensive search, I have yet to find a satisfactory answer. My goal is to configure it without including the CUT time. {name: "Registered:", value: `${user.createdAt}`}, {name: "Joined:", value: `${message.guild.joinedAt}`} Presently, ...

Running Handlebars using NodeJS can sometimes result in a "Cannot find module './parser'" error

After successfully creating and implementing a Handlebars template in the Browser, my next goal is to utilize the Handlebars precompiler, which requires a NodeJS module. I have already downloaded Handlebars for NodeJS along with all dependencies locally (n ...

Creating dynamic form calculations using Javascript, Ajax, and JQuery on user input change

My form needs to be populated from a MySQL database and human input. The goal is to calculate 2 additional fields based on the existing ones. Example Form: Indicator (MySQL) (dropdown) Hour Equivalent (MySQL) SKS Equivalent (MySQL) Amount (User) Hour To ...

What is an alternative method for transferring data between components in React without directly invoking the target component?

I am facing a challenge in sending the room.id data from Homepage.js component to Player.js component. The use of PrivateRouter component in App.js has made it difficult for me to directly call the component while routing the route with Link. homepage.js ...

JavaScript Error: Issue detecting two distinct GridView checkboxes

In my web application (asp.net & vb code), I encountered an issue involving two different gridviews. Each gridview had checkboxes to select records for batch update, along with corresponding buttons for batch update actions. A validation was required ...

The href appending function will succeed in Ajax if the inArray method is used effectively

Once upon a time, I thought I had nailed it with my ajax login, but alas, I was mistaken. The ajax login feature was working like a charm, perfectly appending the username to a link. Everything was going smoothly until I wanted to implement a page refres ...