My current method of rotating the cube rotates it immediately. I would like to display a rotating motion so the user can see the rotation of the cube, as opposed to the sides of the cube immediately changing color when I hit key 'a', 'w', 'd', or 's'(since the rotation is immediate).
How do I make the cube rotate slowly?
The below code is currently how I am rotating the cube:
boxWidth = 1;
boxHeight = 1;
boxDepth = 1;
const geometry = new THREE.BoxGeometry(boxWidth, boxHeight, boxDepth);
const materials = [
new THREE.MeshBasicMaterial({color: 0x0000ff}),
new THREE.MeshBasicMaterial({color: 0xffffff}),
new THREE.MeshBasicMaterial({color: 0xffff00}),
new THREE.MeshBasicMaterial({color: 0x008000}),
new THREE.MeshBasicMaterial({color: 0xffa500}),
new THREE.MeshBasicMaterial({color: 0xff0000}),
]
const cube = new THREE.Mesh(geometry, materials);
function onDocumentKeyDown(event) {
console.log(event);
if (event.keyCode == 87) { // w button
cube.rotateX(Math.PI / 2);
} else if (event.keyCode == 83) { // s button
cube.rotateX(-Math.PI / 2);
} else if (event.keyCode == 65) { // a button
cube.rotateY(-Math.PI / 2);
} else if (event.keyCode == 68) { // d button
cube.rotateY(Math.PI / 2);
}
};
document.addEventListener("keydown", onDocumentKeyDown, false);