Giter Club home page Giter Club logo

osbx's Introduction

osbx

Component & Plugin based storyboard generator built on top of @dotosb library

Requirements

  • NodeJS: latest
  • ts-node (npm i -g ts-node)

Getting started

To create a new storyboard project, first create a new directory on your computer. Then you can run the following commands:

npm init -y
npm install osbx

create a new file named osbx.config.json

{
  "beatmap_path": "path_to_the_beatmap_folder",
  "beatmap_name": "name_of_the_beatmap"
}

Finally, create a main.ts file with a basic code example:

import { Component, osbx, Plugin } from "osbx";

class ExamplePlugin extends Plugin {
  public hello_world(): void {
    const sprite = this.createSprite("sb/p.png");
    sprite.fade([0, 10000], [1, 1]);
  }
}

class MainComponent extends Component {
  private example_plugin = this.getPlugin(ExamplePlugin);

  init() {
    this.example_plugin.hello_world();
  }
}

osbx.create(MainComponent);

You can run your project with nodemon: nodemon -q main.ts or with ts-node ts-node main.ts

osbx's People

Contributors

s-traut avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

osbx's Issues

Normalizing syntax

After checking back the core code, I've realized that I've messed up a lot of functions naming cases by using PascalCase instead of camelCase. I should fix all of these for 1.3.0 before people start using the engine.

Lot of functions will need to change.

ParameterAt() functions

Adding the possibility to use sprite.ParameterAt(time) function. This will return the corresponding value of the parameter at a given time.

Example usage:

let sprite = this.createSprite(...);
sprite.Fade(0, 0, 1000, 1);
sprite.FadeAt(500); // will return 0.5

This feature might require implementing easing calculation functions.

Optimizing plugins load time

The plugin load time is quite long (from 20ms to 100ms sometimes) since I do changed the way they are registered. I might be good to have some kind of refactoring for that or simply understanding the problem cause there is probably some bad code involved.

Easings calculations

Setting up a class that can be used to retrieve value of an easing at a specific range position [0 ... 1].
I still need to think about this feature and will probably use the code from other sources to implement it.

Moving beatmap to a plugin

The beatmap management folder is quite useless in the core source of osbx, It would be nice to make it a plugin. I would need to figure out how to load it from other plugins cause it might be useful. Beatmap plugin should be just a "beatmap" parser plugin and nothing else

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.