Stricter PEP-8 conformance.
[python-bulletml.git] / bulletml / __init__.py
index f06d086..d872be8 100644 (file)
@@ -1,35 +1,48 @@
 """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. A sample renderer for Pygame is included. The full
+API documentation is contained in its Python docstrings.
+
+In addition to the standard BulletML XML format, this module supports
+an equivalent YAML format. For convenience, 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-bulletml homepage, https://yukkurigames.com/python-bulletml/.
+
 
 Basic Usage:
 
     from bulletml import Bullet, BulletML
 
 Basic Usage:
 
     from bulletml import Bullet, BulletML
-    doc = Bulletml.BulletML.FromDocument(open("test.xml", "rU"))
+
+    doc = 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 = [bullet]
     ...
     for bullet in bullets:
-        bullets.extend(bullet.step())
-
+        bullets.extend(bullet.step()) # step() returns new Bullets
     ...
 
     ...
 
-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, collides_all
 
 
-VERSION = (1, 0)
+VERSION = (3,)
 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", "collides_all"]