]> git.r.bdr.sh - rbdr/serpentity/blobdiff - README.md
Normalizes API for entities
[rbdr/serpentity] / README.md
index 3878dd15a67c219c103888b220f2390d97c03c8e..6724652ea0d47572cda501d06aac6e9cb14ee167 100644 (file)
--- 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:
 
 
 Usage:
 
-require('serpentity');
+    require('serpentity');
 
 ## Instantiating an engine
 
 
 ## 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.addEntity(entityFactory());
-    engine.addSystem(new GameSystem());
+    engine.addSystem(new GameSystem(), priority);
 
 Update all systems:
 
 
 Update all systems:
 
@@ -26,7 +29,7 @@ Remove entities or systems:
 
 Entities are the basic object of Serpentity, and they do nothing.
 
 
 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
 
 
 All the behavior is added through components
 
@@ -42,9 +45,9 @@ eventually be consumed by "Systems"
         }
     });
 
         }
     });
 
-You can add components to entities by using the add method:
+You can add components to entities by using the addComponent method:
 
 
-    entity.add(new PositionComponent());
+    entity.addComponent(new PositionComponent());
 
 
 Systems can refer to entities by requesting nodes.
 
 
 Systems can refer to entities by requesting nodes.
@@ -70,28 +73,37 @@ that comply with that API
 
 Systems are called on every update, and they use components through nodes.
 
 
 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
 
 
 ## 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 to test it out locally.
+Spawn a python server (`python -m SimpleHTTPServer`) to see
+the test page in `http://localhost:8000/browser_test/`
+
+
 ## TO-DO
 
 * Removing components
 * Implement the ashteroids demo (Serpentoids)
 * Actually check performance
 ## TO-DO
 
 * Removing components
 * Implement the ashteroids demo (Serpentoids)
 * Actually check performance
+
+[ash]: http://www.ashframework.org/