X-Git-Url: https://git.yukkurigames.com/?p=python-bulletml.git;a=blobdiff_plain;f=bulletml%2F__init__.py;h=d872be88ed5eb738d2022c182faa220ccc6eed3a;hp=addc0fee1bce133a4c49fdd890b9bb9a6ecfbb63;hb=dca04aaf45403526f46d0f2ffe07cf6f062ee136;hpb=70d25195d561d8b5d3126c6bbac0ecad2a502f06 diff --git a/bulletml/__init__.py b/bulletml/__init__.py index addc0fe..d872be8 100644 --- a/bulletml/__init__.py +++ b/bulletml/__init__.py @@ -4,28 +4,32 @@ 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. +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. See bulletml.bulletyaml for more details. +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, http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/index_e.html, or the -python-bullet homepage, http://code.google.com/p/python-bulletml/. +python-bulletml homepage, https://yukkurigames.com/python-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 - 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.extend(bullet.step()) # step() returns new Bullets ... For drawing, you're on your own, but Bullet instances have a number of @@ -35,9 +39,10 @@ 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 = (0, 1) +VERSION = (3,) VERSION_STRING = ".".join(map(str, VERSION)) -__all__ = ["VERSION", "VERSION_STRING", "Bullet", "BulletML"] - +__all__ = ["VERSION", "VERSION_STRING", "Bullet", "BulletML", + "overlaps", "collides", "collides_all"]