Action: Don't need the owner in the constructor. Factory function to create a child.
[python-bulletml.git] / bulletml / __init__.py
index f06d086..c31dce7 100644 (file)
@@ -1,35 +1,46 @@
 """BulletML parser.
 
 """BulletML parser.
 
-This module parses and runs BulletML scripts. BulletML is a markup
-language for describing complex bullet patterns in shooting games.
+BulletML is the Bullet Markup Language. BulletML can describe the
+barrage of bullets in shooting games. (For example Progear, Psyvariar,
+Gigawing2, G DARIUS, XEVIOUS, ...) This module parses and executes
+BulletML scripts in Python. All data structures in it are
+renderer-agnostic.
+
+In addition to the standard BulletML XML format, this module supports
+an equivalent YAML format. See bulletml.bulletyaml for more details.
+
+Finally, two simple collision routines are provided, bulletml.overlaps
+for stationary circles and bulletml.collides for moving circles.
+
 More information is available at the BulletML homepage,
 More information is available at the BulletML homepage,
-http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/index_e.html.
+http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/index_e.html, or the
+python-bullet homepage, http://code.google.com/p/python-bulletml/.
 
 Basic Usage:
 
     from bulletml import Bullet, BulletML
     doc = Bulletml.BulletML.FromDocument(open("test.xml", "rU"))
 
 Basic Usage:
 
     from bulletml import Bullet, BulletML
     doc = Bulletml.BulletML.FromDocument(open("test.xml", "rU"))
+    player = ...  # On your own here, but it needs x and y fields.
     rank = 0.5    # Player difficulty, 0 to 1
     rank = 0.5    # Player difficulty, 0 to 1
-    params = []   # Initial variable settings, usually empty
-    actions = [a(params, rank) for a in doc.top]
-    bullet = Bullet(x, y, target=player, actions=actions, rank=rank)
+    bullet = Bullet.FromDocument(doc, x, y, target=player, rank=rank)
     bullets = [bullet]
     ...
     for bullet in bullets:
         bullets.extend(bullet.step())
     bullets = [bullet]
     ...
     for bullet in bullets:
         bullets.extend(bullet.step())
-
     ...
 
     ...
 
-For drawing, you're on your own, but Bullet has a number of
+For drawing, you're on your own, but Bullet instances have a number of
 attributes that can be used to influence it.
 
 """
 
 from bulletml.parser import BulletML
 from bulletml.impl import Bullet
 attributes that can be used to influence it.
 
 """
 
 from bulletml.parser import BulletML
 from bulletml.impl import Bullet
+from bulletml.collision import overlaps, collides
 
 
-VERSION = (1, 0)
+VERSION = (1,)
 VERSION_STRING = ".".join(map(str, VERSION))
 
 VERSION_STRING = ".".join(map(str, VERSION))
 
-__all__ = ["VERSION", "VERSION_STRING", "Bullet", "BulletML"]
+__all__ = ["VERSION", "VERSION_STRING", "Bullet", "BulletML",
+           "overlaps", "collides"]