New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

three-spaceship-controls

Package Overview
Dependencies
Maintainers
0
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

three-spaceship-controls

A threejs spaceship-style control with keyboard.

latest
Source
npmnpm
Version
0.3.15
Version published
Maintainers
0
Created
Source

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

Keywords

three

FAQs

Package last updated on 05 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts