npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

three-spaceship-controls

v0.3.15

Published

A threejs spaceship-style control with keyboard.

Downloads

57

Readme

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 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

"Buy Me A Coffee"

License

MIT