0.3.15 • Published 1 year ago

three-spaceship-controls v0.3.15

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

three-spaceship-controls

License npm version

This project is in beta version.

A threejs spaceship-style control with keyboard.

Demo

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 nameDescriptionDefault valueExample values
enabledEnables or disables the controls.true
accelerationThe rate at which the spaceship gains speed.0.6
minSpeedThe minimum speed of the spaceship.0.5
maxSpeedThe maximum speed of the spaceship.10
decelerationThe rate at which the spaceship loses speed when not accelerating.2.5
rotationAccelerationThe rate at which the spaceship starts to rotate.0.5
maxRotationSpeedThe maximum speed at which the spaceship can rotate.0.5
rotationDecelerationThe rate at which the spaceship stops rotating when not being controlled.0.25 * 10
rotationTiltThe tilt effect of the spaceship during rotation.0.8
cameraHorizontalFollowingThe extent to which the camera follows the spaceship horizontally.0.8
cameraAngleThe angle at which the camera is positioned relative to the spaceship.Math.PI / 7
cameraDistanceThe distance of the camera from the spaceship.2
cameraFollowingWeightThe weight that determines the smoothness of the camera following the spaceship.0.05
maxCameraFollowingThe maximum limit for camera following.1
cameraHorizontalOffsetThe horizontal offset of the camera from the spaceship.0.4
cameraVerticalOffsetThe vertical offset of the camera from the spaceship.0.4
maxVerticalAngleThe maximum vertical angle the spaceship can achieve.5/12 * Math.PI (approximately 70 degrees)
verticalRotationAccelerationThe rate at which the spaceship starts to rotate vertically.0.5
verticalRotationDecelerationThe rate at which the spaceship stops rotating vertically when not being controlled.0.5 * 10
cameraVerticalFollowingThe 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

"Buy Me A Coffee"

License

MIT

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