0.3.15 • Published 1 year ago
three-spaceship-controls v0.3.15
three-spaceship-controls
This project is in beta version.
A threejs spaceship-style control with keyboard.
Demo
Installation
Use the package manager npm to install the project.
npm install three-spaceship-controls
Usage
import { SpaceShipControls } from "three-spaceship-controls";
const controls = new SpaceShipControls(camera, canvas, ship);
const clock = new THREE.Clock();
let oldElapsedTime = 0;
const animate = () => {
const elapsedTime = clock.getElapsedTime();
const deltaTime = elapsedTime - oldElapsedTime;
oldElapsedTime = elapsedTime;
controls.update(deltaTime);
window.requestAnimationFrame(animate);
};
animate();
Control the spaceship with W,A,D,Q,E
Props
Prop name | Description | Default value | Example values |
---|---|---|---|
enabled | Enables or disables the controls. | true | |
acceleration | The rate at which the spaceship gains speed. | 0.6 | |
minSpeed | The minimum speed of the spaceship. | 0.5 | |
maxSpeed | The maximum speed of the spaceship. | 10 | |
deceleration | The rate at which the spaceship loses speed when not accelerating. | 2.5 | |
rotationAcceleration | The rate at which the spaceship starts to rotate. | 0.5 | |
maxRotationSpeed | The maximum speed at which the spaceship can rotate. | 0.5 | |
rotationDeceleration | The rate at which the spaceship stops rotating when not being controlled. | 0.25 * 10 | |
rotationTilt | The tilt effect of the spaceship during rotation. | 0.8 | |
cameraHorizontalFollowing | The extent to which the camera follows the spaceship horizontally. | 0.8 | |
cameraAngle | The angle at which the camera is positioned relative to the spaceship. | Math.PI / 7 | |
cameraDistance | The distance of the camera from the spaceship. | 2 | |
cameraFollowingWeight | The weight that determines the smoothness of the camera following the spaceship. | 0.05 | |
maxCameraFollowing | The maximum limit for camera following. | 1 | |
cameraHorizontalOffset | The horizontal offset of the camera from the spaceship. | 0.4 | |
cameraVerticalOffset | The vertical offset of the camera from the spaceship. | 0.4 | |
maxVerticalAngle | The maximum vertical angle the spaceship can achieve. | 5/12 * Math.PI (approximately 70 degrees) | |
verticalRotationAcceleration | The rate at which the spaceship starts to rotate vertically. | 0.5 | |
verticalRotationDeceleration | The rate at which the spaceship stops rotating vertically when not being controlled. | 0.5 * 10 | |
cameraVerticalFollowing | The extent to which the camera follows the spaceship vertically. | 0.25 |
Methods
update(delta)
Updates the position of the camera and spaceship.
Parameters:
delta
(number): The time elapsed in seconds to update the positions.
setKeyBindings(keyBindings)
Sets the key bindings for the controls.
Parameters:
keyBindings
(object): The key bindings for the controls.
Example usage(default value):
controls.setKeyBindings({
accelerate: "KeyW",
rotateLeft: "KeyA",
rotateRight: "KeyD",
rotateUp: "KeyQ",
rotateDown: "KeyE",
});
Support
License
0.3.15
1 year ago
0.3.14
1 year ago
0.3.13
1 year ago
0.3.12
1 year ago
0.3.11
1 year ago
0.3.10
1 year ago
0.3.9
1 year ago
0.3.8
1 year ago
0.3.6
1 year ago
0.3.5
1 year ago
0.3.4
1 year ago
0.3.3
1 year ago
0.3.2
1 year ago
0.3.1
1 year ago
0.3.0
1 year ago
0.2.0
1 year ago
0.1.4
1 year ago
0.1.2
1 year ago
0.1.1
1 year ago
0.1.0
1 year ago
0.0.3
1 year ago
0.0.2
1 year ago
0.0.1
1 year ago