Skip to main content

A fast 2D sprite engine using OpenGL

Project description

Rabbyt is a sprite library for Python with game development in mind. It has two goals:

  1. Be fast, without sacrificing ease of use.

  2. Be easy to use, without sacrificing speed.

For a quick rundown on the current features see the website.

You can find the reference documentation here.

Changelog

Version 0.8

  • The anims module has been rewritten with various new functionality, including:

    • You can now use anims with your own classes by subclassing Animable.

    • Added ease, ease_in, and ease_out anims.

    • Added support for chaining anims sequentially without using a scheduler.

    • AnimPointer added for reading from a memory address.

    • start and end argments for lerp etc. can now be anims.

  • Added aabb_collide() function for doing bounding box collision.

  • Removed the chipmunkglue module – it’s no longer needed for integrating with chipmunk. (See the example for the new way to do it using AnimPointer.)

  • __import__() is now used for importing pyglet and pygame, so blacklists aren’t needed for tools like py2exe.

  • Deprecated init_display function.

  • Deprecated fonts module and vertexarrays module.

  • Windows binaries are finally compiled with -O3. (I found the troublesome optimization.)

Version 0.7.6

  • Added pyglet_load_texture for using pyglet instead of pygame. (Which one to use is autodetected.)

  • Added Sprite.texture property, which accepts pyglet textures as well as filenames.

  • Assigning a 12-tuple to Sprite.tex_shape is now converted from the format used by pyglet’s tex_coords texture attribute.

  • Added Quad class, to make Sprite.shape and Sprite.tex_shape nicer.

  • Added a workaround to make setuptools work with Pyrex 0.9.6.3.

  • Added collide_single() function for finding collisions between a group and a single object.

  • Fixed a bug where the time arguments in lerp were converted to ints.

  • Removed deprecated physics module.

  • Various other bugfixes.

Version 0.7.5

  • New (alpha) Array classes.

  • Fixed a segmentation fault due to weakrefs. (Sprite instances are no longer weakrefable.)

  • Fixed sine interpolation being cosine interpolation :-P

  • Added an example showing different interpolators.

  • Added a flags keyword argument to init_display()

Version 0.7

  • License changed to MIT.

  • Added add_time() function.

  • Time is stored internally as float instead of int. This allows for optionally using seconds instead of milliseconds.

  • Added exponential, cosine, and sine interpolation.

  • Documented rabbyt.anims quite a bit better.

  • Forced Pyrex version 0.9.5 or greater, to prevent segfaults when using weakrefs. (It still can be compiled without pyrex.)

  • Added more hacks for building on MacOS. Hopefully it’ll all go smooth now.

  • Deprecated the Basic1 and Basic2 physics classes.

  • HTML documentation is now included in the source distribution.

  • Added missing documentation for VertexArray.texture_id.

Version 0.6

  • Sprites can be scaled independently on their x and y axes.

  • Added left, right, top, and bottom properties to Sprite.

  • Fixed bug with some sprites being drawn upside-down when rotated.

  • Fixed c, pyx, and pxd files being installed.

  • Added a small function for integrating with the chipmunk/pymunk physics lib.

Version 0.0.5

  • c source files are included, so Pyrex is not needed for building.

  • Renamed the DV* classes to Anim*. (This is mostly internal and shouldn’t affect anyone.)

  • MANY fixes and improvements to font rendering. (As in, it’s actually useful now!)

  • Lots of docstrings added and improved.

  • pygame_load_texture() now takes filter and mipmap arguments, which are passed on to load_texture().

Version 0.0.4

  • Fixed compiling on MS Windows.

  • Added some simple helpers for physics simulation.

  • Moved all non-rendering code out of Sprite and into BaseSprite.

  • Added font rendering support.

  • Using color data in VertexArray rendering is now optional.

  • VertexArray can now optionally bind a texture before rendering.

  • Fixed a bug with VertexArray barfing when not given all the data for a vertex, instead of using defaults.

  • Fixed a segfault when trying to load a texture before initializing the OpenGL context.

  • Switched DVProxy and DVPyFunc to not cache by default. (Premature optimization is the root of all evil.)

  • All examples now respond to window events nicely.

Version 0.0.3

  • Added DVProxy and DVPyFunc classes. (Assigning a function to a sprite property creates a DVPyFunc transparently.)

  • Added basic arithmetic operations for DV classes.

  • Added Sprite.attrgetter() for super fast property access.

  • Changed rabbyt.collisions.rdc() to not return groups with only one object.

  • Added a number of introductory examples, showing the basic features.

Version 0.0.2

  • Added vertex array rendering.

  • Added collision detection.

  • Lots of docstrings added/improved.

  • Added rgb property to Sprite.

Version 0.0.1

  • Initial release!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Rabbyt-0.8.tar.gz (166.0 kB view details)

Uploaded Source

Built Distributions

Rabbyt-0.8.win32-py2.5.exe (207.3 kB view details)

Uploaded Source

Rabbyt-0.8-py2.5-win32.egg (162.2 kB view details)

Uploaded Source

Rabbyt-0.8-py2.5-linux-i686.egg (595.8 kB view details)

Uploaded Source

Rabbyt-0.8-py2.4-linux-i686.egg (435.9 kB view details)

Uploaded Source

File details

Details for the file Rabbyt-0.8.tar.gz.

File metadata

  • Download URL: Rabbyt-0.8.tar.gz
  • Upload date:
  • Size: 166.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Rabbyt-0.8.tar.gz
Algorithm Hash digest
SHA256 c824735e13998fbf4e4f357863203cae604b7c9eaebc51e89ecea618306eb74f
MD5 ee44d12925f76d183a26ccdf72793a74
BLAKE2b-256 03e9c29f51aa4f4b05f06c350b172763631a7c4a3757ffbdc5b571996f5b1023

See more details on using hashes here.

File details

Details for the file Rabbyt-0.8.win32-py2.5.exe.

File metadata

File hashes

Hashes for Rabbyt-0.8.win32-py2.5.exe
Algorithm Hash digest
SHA256 7c909d86f350bb2c9d33128d1b5cecddd4c0dbc6bd86fdd9cabf2206e42516fb
MD5 d0de8c12908e2dd579259f07825324f7
BLAKE2b-256 fa96b2d35104336e681b4e5cd7e5492241c6bb103dfe7bc61fb79aa9a4ddb423

See more details on using hashes here.

File details

Details for the file Rabbyt-0.8-py2.5-win32.egg.

File metadata

File hashes

Hashes for Rabbyt-0.8-py2.5-win32.egg
Algorithm Hash digest
SHA256 de3052090ddad88c0528e70c7a41b0a0e368c58d904c75b4ac62aa297387bd6f
MD5 0d1f299488075f59c5bfaf1fa6e8b033
BLAKE2b-256 d7892d38c5eab1da8536434362e6bcf5d57dde157751f1dcdf346e5f04a99e6b

See more details on using hashes here.

File details

Details for the file Rabbyt-0.8-py2.5-linux-i686.egg.

File metadata

File hashes

Hashes for Rabbyt-0.8-py2.5-linux-i686.egg
Algorithm Hash digest
SHA256 a8c0942f6c4c4d52467dcdf0f815f630ac133e89ce1b3da44756020036e72d68
MD5 a14d063c4d8b6d9dc6cad59a9f6f8bac
BLAKE2b-256 869c097ac37dd95c100e8186d8b870d28331f2911c8476447764c9278ab47025

See more details on using hashes here.

File details

Details for the file Rabbyt-0.8-py2.4-linux-i686.egg.

File metadata

File hashes

Hashes for Rabbyt-0.8-py2.4-linux-i686.egg
Algorithm Hash digest
SHA256 ea0c6ecda3afd25312154bc8d14221cf9a867445faf1973b5f9d55a454574b6d
MD5 cc8aa3bb217c8bb35493c97c2ce34da8
BLAKE2b-256 0f65ec809ee09cfde5b11b11483c7fc9ff138ccc571a3790d17fbbce1ccdefad

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page