0.3.15 • Published 2 years 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-controlsUsage
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
2 years ago
0.3.14
2 years ago
0.3.13
2 years ago
0.3.12
2 years ago
0.3.11
2 years ago
0.3.10
2 years ago
0.3.9
2 years ago
0.3.8
2 years ago
0.3.6
2 years ago
0.3.5
2 years ago
0.3.4
2 years ago
0.3.3
2 years ago
0.3.2
2 years ago
0.3.1
2 years ago
0.3.0
2 years ago
0.2.0
2 years ago
0.1.4
2 years ago
0.1.2
2 years ago
0.1.1
2 years ago
0.1.0
2 years ago
0.0.3
2 years ago
0.0.2
2 years ago
0.0.1
2 years ago
