X-Git-Url: https://git.r.bdr.sh/rbdr/serpentity/blobdiff_plain/85861d6720c30adc4afd1e041fd7e27fb596dde7..eecd25c9188b5c045d89aa26d1d367dd5131d88f:/README.md diff --git a/README.md b/README.md index 3878dd1..4d73f18 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,20 @@ -Serpentity is a simple entity framework inspired by Ash. +# Serpentity + +Serpentity is a simple entity framework inspired by [Ash][ash]. Usage: -require('serpentity'); + require('serpentity'); ## Instantiating an engine -var engine = Serpentity(); + var engine = Serpentity(); -Add entities or systems: +Add entities or systems, systems are added with a priority (the smaller +the number, the earlier it will be called): engine.addEntity(entityFactory()); - engine.addSystem(new GameSystem()); + engine.addSystem(new GameSystem(), priority); Update all systems: @@ -26,7 +29,7 @@ Remove entities or systems: Entities are the basic object of Serpentity, and they do nothing. - var entity = new Serpentity.entity(); + var entity = new Serpentity.Entity(); All the behavior is added through components @@ -70,28 +73,40 @@ that comply with that API Systems are called on every update, and they use components through nodes. -Class("TestSystem").inherits(Serpentity.System)({ - prototype : { - added : function added(engine){ - this.nodeList = engine.getNodes(MovementNode); - }, - removed : function removed(engine){ - this.nodeList = undefined; - } - update : function update(dt){ - this.nodeList.forEach(function (node) { - console.log("Current position is: " + node.position.x + "," + node.position.y); - }); + Class("TestSystem").inherits(Serpentity.System)({ + prototype : { + added : function added(engine){ + this.nodeList = engine.getNodes(MovementNode); + }, + removed : function removed(engine){ + this.nodeList = undefined; + } + update : function update(dt){ + this.nodeList.forEach(function (node) { + console.log("Current position is: " + node.position.x + "," + node.position.y); + }); + } } - } -}); + }); ## That's it Just run `engine.update(dt)` in your game loop :D +## Checking it in the frontend (dev). + +You can link the bower package (bower.json is in `lib/serpentity/` to +make paths cleaner), then link it again from the root directory and +spawn a python server (`python -m SimpleHTTPServer`). The test page +will be available in `http://localhost:8000/browser_test/` + +If you just want to use it, it's available as a bower package! + + ## TO-DO * Removing components * Implement the ashteroids demo (Serpentoids) * Actually check performance + +[ash]: http://www.ashframework.org/