lightning-js's Issues
Tween Create Typing Error
Tween create expects a display object, however this won't always be the case, so remove the parameter type within the tween class.
Tween FPS doesn't work
Setting FPS on tweens no longer seems to actually change the FPS rate.
Tween Delay Undesired Effects
When using delay on tweens, sometimes you get some nasty affects. Probably due to the elapsed time starts even when there is a delay, should be a simple fix.
Event not found crashes game
Subscribing to an event that doesn't exist crashes the game. Should put the event creation function into a try catch.
Scene Prepare Feature
Allow a user to pass a series of textures or texture ID's to the state prepare function. This will upload all of the textures to the GPU before the state's create or pre-create function is fired. This function should be async.
You should also be allowed to tell the texture cache to dump everything else to keep memory low.
Timers Run After Scene Destroy
A timer that is created within a scene, still runs after a scene is destroyed.
Consider if you should add a timer to a state, to ensure it's removed correctly, or leave it in userland to clear up their own timers.
UI Kit
Start work on building a UI kit that allows users to create things such as...
Toggle switches
Input fields
Scrollable Gallaries
Scrollable Lists
Modals / Popups
Buttons
Sliders
Check boxes
Radio Buttons
Sprite Pool
Create a fairly comprehensive sprite pooling class for faster sprite creation.
Scene Restart
Ability to restart any scene at any point.
No Scene Update
When using scene destroy, automatic calling of the scene update function stops working.
Tweens
Need to start thinking about building a Tweening engine (need a name for it maybe).
Should implement the basic Robert Penner easing functions at a minimum.
The whole engine should be based around creating and storing frame data, not the entire tween.
Also, it should be possible to add a tween type to a sprite, so you can do something like..
sprite.tween('x').to(150);
Creating frames should be done either on the fly, or all at once.
Storing these frames in cache is a must.
Particle Emitter Emit Once
Create a function for emitting once or several times instead of as an interval.
Particle Emitter advance Step
Write a quick function to step the particle emitter allowing you to create a scene with particles already emitting
Particle Emitter Wind
Add functionality for gravity shifting to emulate wind.
Sprite Sheet Parser
Build a tool to strip out individual textures of a sprite sheet and place them into an array ready to be used as an animated sprite.
Link Sprites and Bodies
Make a link class to build a relationship between a PIXI Display Object, and a Box2D Body.
This would vastly speed up development.
More Geometry Shapes
- Donut
- Trapezoid
- Arrow
- Pie
- Cloud
- Tear
- Cog
- Segment
- Crescent
- Callout Ellipse
- Callout Rounded Rectangle
Type error when preloading an asset
src/ts/scenes/preload.ts(8,43): error TS2345: Argument of type '"smoke1.png"' is not assignable to parameter of type 'string[]'.
Preloader too many items
When using the loader, if you're using an atlas, the loader increments by 1, however on complete gets called twice causing the complete event to be triggered multiple times.
Drag wont disable
When using enableDrag() on sprite drag does not disable on mouse up.
Particle Emitter Max Particles Doesn't Work
Internal Clock
Create a quick access tool to be able get the time. Probably should sit inside the utils?
Static Text
Create a static text bitmap from a text object
Resource Loader / GPU Cache
Make a more comprehensive resource loader that allows an optional parameter to tell the loader to upload the texture to the GPU.
Also take care of things like:
Loaded time - remove after x time if it hasn't been used?
GC?
Global name caching.. remove it from the pixi texture cache and add it to a custom cache
This has been done very recently by the guys at pixi. Look at their Garbage Collection on the GPU.
Particle Emitter Strength Change
Add feature to allow the strength to change dynamically over time.
Storage Temp Only & Remove All
Make some functionality that allows the storage component to differentiate using local storage, or keeping it as variable references only. Something like..
this.game.storage.set('myVarPersistant', 123, true); // uses local storage - will be there if player comes back
this.game.storage.set('myVarShortLived', 123, false); // uses local variables only - will get deleted when tab closed
Also make some functionality to remove storage items, something like.
this.game.storage.remove('deleteMe');
this.game.storage.remove(['deleteMe', 'deleteMeToo'];
this.game.storage.removeAll(true, false); // optional to remove only local or persistent storage items
Create Basic Physics Plugin
Create a basic physics plugin that consists of:
- Bounding box collision detection
- Gravity (Global / Local)
- Collision pool
- Pool Events (collide, over, out, outofworld)
- World Bounds / Box Bounds
- Drag
- Enable
- Disable
- Pause
- Collide Children
this.game.physics.createPool('key', sprite1, sprite2, sprite3...); this.game.physics.pool('key').add(sprite4 ...); this.game.physics.pool('key').remove(sprite4 ...);
Multiple Events
Create a nicer way of creating multiple events. Something like..
this.events.create('event', 'event2', 'event3', 'event4');
-- or --
this.events.create(['event1', 'event2'];
Consider if it's better to pass an array of strings rather than an spread operator?
Either way will be much cleaner than:
this.events.create('event');
this.events.create('event2');
this.events.create('event3');
this.events.create('event4');
SpriteSheet Parser
Build a tool for parsing / cutting rectangles straight out of a sprite sheet.
Text Class SetAnchor
Add the setAnchor function to the text class.
No SetAnchor on Text Class
Scene Manager Restart
When restarting the scene, class scoped variables are now being destroyed as the class is only ever instantiated once in the main.ts file.
Particle Emitter Particle Life Span Doesn't Work
Cannot access gravity on particle emitter
particleEmitter.gravity is not accessable.
Write a native getter for it.
Audio Preload
In the preload phase of a scene, wait for the audio to be preloaded before continuing.
Text class optional style parameter
Clone Existing Tween
Write some functionality to clone an existing tween.
let clone = this.game.tweens.clone(tween, sprite);
clone.start();
Audio Not Loading
When loading audio, it doesn't want to load for some reason.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.