-updated README.md

-fixed shaders for GL2
-added Entity selection tool
-throw out tools from "Demo" window to "Tools" window
-change ComboBox to Tabs for Tools
-Added more verbose tips
-Improved and fixed BrickBreaker collisions
-fixed simple DUB issue
This commit is contained in:
Mergul 2021-03-01 12:16:02 +01:00
parent 1acd0df0ef
commit 56f870bac6
21 changed files with 332 additions and 133 deletions

View file

@ -57,7 +57,6 @@ There are some assumptions that should be considered when developing application
* Better EventManager - there are several optimization and improvements that can be added in the future.
* More demos and examples - demo appliaction is very basic now, but in future more minigames and sanbox mode (opportunity to mix many components and systems) are planned.
* C API - in highly depends on amount of work required. Makes possible to use library from different languages.
* GPU compute - idea in draft stage. Special components and systems whose data wolud be on GPU memory.
* More smaller improvements...
For more information about design and usage feel free to read [documentation](https://mergul.gitlab.io/bubel-ecs/ecs.html)**(WIP)** and [WIKI](https://gitlab.com/Mergul/bubel-ecs/-/wikis/home).
@ -104,14 +103,12 @@ Online demo support multithreading and page tries to check if client support WAS
struct Position
{
mixin ECS.Components; //makes struct component
float x;
float y;
}
struct Velocity
{
mixin ECS.Components;
//default values works
float x = 0.1;
float y = 1;
@ -119,7 +116,6 @@ struct Velocity
struct StaticFlag
{
mixin ECS.Components;
}
struct UpdateSystem
@ -132,7 +128,7 @@ struct UpdateSystem
{
int length; //entities count
@readonly Entity[] entities; //entities arrays, entity contain ID only
Position[] positions; //positions array
Position[] positions; //positions array, by default components are considered to has write access (used for multithreading dependencies)
@readonly Velocity[] velocities; //veocities array, readonly (Multithreading tag)
}
@ -158,7 +154,7 @@ void main()
manager.endRegister();
//allocate template
EntityTemplate* tmpl = manager.allocateEmplate([Velocity.component_id, Position.component_id].staticArray);
EntityTemplate* tmpl = manager.allocateEmplate([becsID!Velocity, becsID!Position].staticArray);
scope (exit) manager.freeTemplate(tmpl);
//gets pointer to template component data
@ -170,9 +166,9 @@ void main()
manager.addEntity(tmpl);
}
manager.begin(); //start frame
manager.begin(); //start frame, inside system onBegin callbacks are called
manager.update(); //update all systems, there onUpdate callbacks are called
manager.end(); //end frame
manager.end(); //end frame, inside system onEnd callbacks are called
}
```