LoginSignup
0
0

More than 3 years have passed since last update.

Magic Leap MagicScript Landscape Application. Vibe Pattern of the control device

Last updated at Posted at 2019-05-19

Prepare
Magic Leap One
https://www.magicleap.com/magic-leap-one

mlsdk v.0.20.0
https://creator.magicleap.com/downloads/lumin-sdk/overview

magic-script-cli v2.0.1
https://www.npmjs.com/package/magic-script-cli

magic-script-polyfills v2.2.0
https://www.npmjs.com/package/magic-script-polyfills

Create Project

magic-script init my-vibe org.magicscript.vibe "VIBE"
cd my-vibe

Code

Change app.js

import { LandscapeApp, ui, haptics } from 'lumin';
const { UiButton } = ui;
const { VibePattern, VibeIntensity } = haptics;

export class App extends LandscapeApp {
  onAppStart () {
    let pattern = VibePattern.VIBE_BUMP;
    const app = this;
    const prism = this.requestNewPrism([0.5, 0.5, 0.5]);    
    const button = 
          UiButton.Create(prism, "BUMP", 0, 0.1);
    button.onActivateSub(function (uiEventData) {

      switch(pattern)
      {
        case VibePattern.VIBE_BUMP:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_BUZZ;
          button.setText("BUZZ");
          break;
        case VibePattern.VIBE_BUZZ:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_CLICK;
          button.setText("CLICK");
          break;
        case VibePattern.VIBE_CLICK:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_DOUBLE_CLICK;
          button.setText("DOUBLE_CLICK");
          break;
        case VibePattern.VIBE_DOUBLE_CLICK:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_FORCE_DOWN;
          button.setText("FORCE_DOWN");
          break;
        case VibePattern.VIBE_FORCE_DOWN:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_FORCE_DWELL;
          button.setText("FORCE_DWELL");
          break;
        case VibePattern.VIBE_FORCE_DWELL:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_FORCE_UP;
          button.setText("FORCE_UP");
          break;
        case VibePattern.VIBE_FORCE_UP:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_PULSE_RAW;
          button.setText("PULSE_RAW");
          break;
        case VibePattern.VIBE_PULSE_RAW:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_SECOND_FORCE_DOWN;
          button.setText("SECOND_FORCE_DOWN");
          break;
        case VibePattern.VIBE_SECOND_FORCE_DOWN:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_TAP;
          button.setText("TAP");
          break;
        case VibePattern.VIBE_TAP:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_TICK;
          button.setText("TICK");
          break;
        case VibePattern.VIBE_TICK:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_NONE;
          button.setText("NONE");
          break;
        case VibePattern.VIBE_NONE:
          vibe(app, pattern);
          pattern = VibePattern.VIBE_BUMP;
          button.setText("BUMP");
          break;
      }
    });
    prism.getRootNode().addChild(button);
  }
}

function vibe(app, VIBE)
{
  app.triggerControlBodyHaptics(VIBE, 100, VibeIntensity.HIGH);
}

Build

magic-script build -i

Run

magic-script run --port=10000

Reference
triggerControlBodyHaptics (MagicScript API)
https://docs.magicscript.org/lumin.LandscapeApp.html#triggerControlBodyHaptics

VibePattern (MagicScript API)
https://docs.magicscript.org/lumin.haptics.VibePattern.html

magicscript
https://www.magicscript.org/

Thanks!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0